SpyBara
Go Premium

Documentation 2026-10-26 22:57 UTC to 2026-10-27 22:59 UTC

68 files changed +1,418 −1,084. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

79| `Permission Required:` | 等待您回答的權限提示 |79| `Permission Required:` | 等待您回答的權限提示 |

80| `Cost:` | Claude Code 結束時的工作階段成本摘要(如果您的帳戶[顯示成本](https://code.claude.com/docs/zh-TW/costs.md)) |80| `Cost:` | Claude Code 結束時的工作階段成本摘要(如果您的帳戶[顯示成本](https://code.claude.com/docs/zh-TW/costs.md)) |

81 81 

82Claude Code 將終端機游標保持在輸入插入點上,因此您的螢幕閱讀器的讀取目前行命令會讀取您正在編輯的提示詞。82Claude Code 將終端機游標保持在輸入插入點上,因此您的螢幕閱讀器的讀取目前行命令會讀取您正在編輯的提示詞。當您在輸入行末尾輸入時,或在該處按 `Backspace`,Claude Code 只寫入變更的字元。您的螢幕閱讀器只會回應這些字元。

83 

84當您在輸入行末尾輸入時,或在該處按 `Backspace`,Claude Code 只寫入變更的字元。您的螢幕閱讀器只會回應這些字元。

85 83 

86當您使用其中一個[文字編輯快捷鍵](https://code.claude.com/docs/zh-TW/interactive-mode.md#text-editing)刪除單字或行時,Claude Code 會宣佈已刪除的文字:84當您使用其中一個[文字編輯快捷鍵](https://code.claude.com/docs/zh-TW/interactive-mode.md#text-editing)刪除單字或行時,Claude Code 會宣佈已刪除的文字:

87 85 

admin-setup.md +1 −0

Details

191* [Server-managed settings](https://code.claude.com/docs/zh-TW/server-managed-settings.md):從 Claude 管理員控制台傳遞受管政策191* [Server-managed settings](https://code.claude.com/docs/zh-TW/server-managed-settings.md):從 Claude 管理員控制台傳遞受管政策

192* [All settings](https://code.claude.com/docs/zh-TW/settings-reference.md):每個設定鍵、檔案位置和範例192* [All settings](https://code.claude.com/docs/zh-TW/settings-reference.md):每個設定鍵、檔案位置和範例

193* [Which value Claude Code uses](https://code.claude.com/docs/zh-TW/settings.md#which-value-claude-code-uses):跨受管、專案、本機和使用者設定的優先級規則193* [Which value Claude Code uses](https://code.claude.com/docs/zh-TW/settings.md#which-value-claude-code-uses):跨受管、專案、本機和使用者設定的優先級規則

194* [Manage plugins for your organization](https://code.claude.com/docs/zh-TW/plugins/org.md):透過受管設定在每部機器上安裝共用外掛

194* [Monorepos and large repos](https://code.claude.com/docs/zh-TW/large-codebases.md):為部署到 monorepo 的組織提供的每個目錄設定模式195* [Monorepos and large repos](https://code.claude.com/docs/zh-TW/large-codebases.md):為部署到 monorepo 的組織提供的每個目錄設定模式

195* [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)、[Microsoft Foundry](https://code.claude.com/docs/zh-TW/microsoft-foundry.md):提供者特定部署196* [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md)、[Google Cloud's Agent Platform](https://code.claude.com/docs/zh-TW/google-vertex-ai.md)、[Microsoft Foundry](https://code.claude.com/docs/zh-TW/microsoft-foundry.md):提供者特定部署

196* [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide):SSO、SCIM、座位管理和推出劇本197* [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide):SSO、SCIM、座位管理和推出劇本

Details

41 41 

42那是四個回合:三個有工具呼叫,一個最終純文字回應。42那是四個回合:三個有工具呼叫,一個最終純文字回應。

43 43 

44您可以使用 `max_turns` / `maxTurns` 限制迴圈,它只計算工具使用回合。例如,上面迴圈中的 `max_turns=2` 會在編輯步驟之前停止。您也可以使用 `max_budget_usd` / `maxBudgetUsd` 根據支出閾值限制回合。44您可以使用 `max_turns` / `maxTurns` 限制迴圈。請計入每個包含工具呼叫的回合,再加上一個用於最終純文字回應的回合。若沒有這個額外的回合,執行會以子類型為 `error_max_turns` 的 `ResultMessage` 結束,且不會有最終回應。例如,上面迴圈中的 `max_turns=2` 會在編輯步驟之前停止。您也可以使用 `max_budget_usd` / `maxBudgetUsd` 根據支出閾值限制回合。

45 45 

46沒有限制,迴圈會執行到 Claude 自己完成為止,這對於範圍明確的任務很好,但對於開放式提示(「改進此程式碼庫」)可能會執行很長時間。設定預算是生產代理程式的好預設值。請參閱下面的 [回合和預算](#turns-and-budget) 以了解選項參考。46沒有限制,迴圈會執行到 Claude 自己完成為止,這對於範圍明確的任務很好,但對於開放式提示(「改進此程式碼庫」)可能會執行很長時間。設定預算是生產代理程式的好預設值。請參閱下面的 [回合和預算](#turns-and-budget) 以了解選項參考。

47 47 


191 191 

192| 選項 | 它控制什麼 | 預設值 |192| 選項 | 它控制什麼 | 預設值 |

193| :- | :- | :- |193| :- | :- | :- |

194| 最大回合(`max_turns` / `maxTurns`) | 最大工具使用往返次數 | 無限制 |194| 最大回合(`max_turns` / `maxTurns`) | 最大[回合](#turns-and-messages)數 | 無限制 |

195| 最大預算(`max_budget_usd` / `maxBudgetUsd`) | 迴圈停止時的預估支出 | 無限制 |195| 最大預算(`max_budget_usd` / `maxBudgetUsd`) | 迴圈停止時的預估支出 | 無限制 |

196 196 

197當達到任一限制時,SDK 會返回一個 `ResultMessage`,其中包含相應的錯誤子類型(`error_max_turns` 或 `error_max_budget_usd`)。請參閱 [處理結果](#handle-the-result) 以了解如何檢查這些子類型,以及 [`ClaudeAgentOptions`](https://code.claude.com/docs/zh-TW/agent-sdk/python#claudeagentoptions) / [`Options`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 以了解語法。197當達到任一限制時,SDK 會返回一個 `ResultMessage`,其中包含相應的錯誤子類型(`error_max_turns` 或 `error_max_budget_usd`)。請參閱 [處理結果](#handle-the-result) 以了解如何檢查這些子類型,以及 [`ClaudeAgentOptions`](https://code.claude.com/docs/zh-TW/agent-sdk/python#claudeagentoptions) / [`Options`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options) 以了解語法。

Details

161 161 

162兩種語言都有相同的設定器:162兩種語言都有相同的設定器:

163 163 

164* **`setModel()` / `set_model()`**:切換模型。不帶模型呼叫它以切換到 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md#default-model-setting),而不是您在選項中傳遞的 `model`。164* **`setModel()` / `set_model()`**:切換模型。不帶模型呼叫它以切換到 [Claude Code 的預設模型](https://code.claude.com/docs/zh-TW/model-config.md#default-model-setting),而不是您在選項中傳遞的 `model`。如果工作階段處於自動模式,而您切換到自動模式不支援的模型,工作階段會變更為 `default` 模式。若要返回自動模式,請參閱[自動模式 (`auto`)](https://code.claude.com/docs/zh-TW/agent-sdk/permissions#auto-mode-auto)。

165* **`setPermissionMode()` / `set_permission_mode()`**:切換權限模式165* **`setPermissionMode()` / `set_permission_mode()`**:切換權限模式

166 166 

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

Details

192 192 

193容器需要您的 SDK 的語言執行時:193容器需要您的 SDK 的語言執行時:

194 194 

195* Python SDK 需要 Python 3.10+,或 TypeScript SDK 需要 Node.js 18+195* Python SDK 需要 Python 3.10+,或 TypeScript SDK 需要 Node.js 18.14+

196* TypeScript 和 Python SDK 都為大多數安裝捆綁了原生 Claude Code 二進位檔,生成的 CLI 不需要單獨的 Node.js 安裝。請參閱[快速入門的安裝說明](https://code.claude.com/docs/zh-TW/agent-sdk/quickstart.md),了解需要單獨原生 Claude Code 安裝的安裝方式。196* TypeScript 和 Python SDK 都為大多數安裝捆綁了原生 Claude Code 二進位檔,生成的 CLI 不需要單獨的 Node.js 安裝。請參閱[快速入門的安裝說明](https://code.claude.com/docs/zh-TW/agent-sdk/quickstart.md),了解需要單獨原生 Claude Code 安裝的安裝方式。

197 197 

198捆綁的二進位檔會固定到 SDK 套件版本,因此更新 SDK 是更新 CLI 的方式。SDK 遵循語義版本控制:持續採用修補程式版本,並在採用次要版本之前檢閱 [TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md) 或 [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md) 變更日誌。198捆綁的二進位檔會固定到 SDK 套件版本,因此更新 SDK 是更新 CLI 的方式。SDK 遵循語義版本控制:持續採用修補程式版本,並在採用次要版本之前檢閱 [TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md) 或 [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md) 變更日誌。


335 335 

336| 限制 | 處理方式 |336| 限制 | 處理方式 |

337| - | - |337| - | - |

338| 沒有頂層工作階段逾時 | 工作階段不會自動逾時。在 TypeScript 中設定 `maxTurns` 或在 Python 中設定 `max_turns`,以限制代理程式在停止前進行多少次工具使用往返。 |338| 沒有頂層工作階段逾時 | 工作階段不會自動逾時。在 TypeScript 中設定 `maxTurns` 或在 Python 中設定 `max_turns`,以限制 agent 在停止前進行多少個[回合](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#turns-and-messages)。 |

339| 長工作階段中的記憶體成長 | 限制工作階段長度或定期回收子程序。請參閱[擴展和並行](#scaling-and-concurrency)。 |339| 長工作階段中的記憶體成長 | 限制工作階段長度或定期回收子程序。請參閱[擴展和並行](#scaling-and-concurrency)。 |

340| 大規模平行子代理程式展開可能會觸及速率限制 | 將工作分成較小的批次,而不是發出一次寬廣的分派。 |340| 大規模平行子代理程式展開可能會觸及速率限制 | 將工作分成較小的批次,而不是發出一次寬廣的分派。 |

341| 沒有每個子代理程式的牆上時鐘截止時間 | 在其 `AgentDefinition` 中使用 `maxTurns` 限制每個[子代理程式](https://code.claude.com/docs/zh-TW/agent-sdk/subagents.md)。`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` 設定一個停滯監視程式,當子代理程式停止產生輸出時觸發;它不是總執行時間截止時間。 |341| 沒有每個子代理程式的牆上時鐘截止時間 | 在其 `AgentDefinition` 中使用 `maxTurns` 限制每個[子代理程式](https://code.claude.com/docs/zh-TW/agent-sdk/subagents.md)。`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` 設定一個停滯監視程式,當子代理程式停止產生輸出時觸發;它不是總執行時間截止時間。 |

Details

425 425 

426將 `includeGitInstructions` 設定為 `false` 可排除內建的提交和 pull request 指示,這些指示是 Bash 工具描述的一部分,即使使用自訂 `systemPrompt` 也會到達 Claude。不過,在使用最小預設值、自訂 `systemPrompt`,或具有自己提示詞的自訂主執行緒 agent 時,工作階段開始時本來就不含 git 狀態快照。426將 `includeGitInstructions` 設定為 `false` 可排除內建的提交和 pull request 指示,這些指示是 Bash 工具描述的一部分,即使使用自訂 `systemPrompt` 也會到達 Claude。不過,在使用最小預設值、自訂 `systemPrompt`,或具有自己提示詞的自訂主執行緒 agent 時,工作階段開始時本來就不含 git 狀態快照。

427 427 

428如果您設定 `CLAUDE_CODE_DISABLE_ATTACHMENTS`,Claude Code 也會將 `@` 檔案提及作為純文字傳送,而不是將其展開為檔案內容。可用 subagent 清單和背景任務通知仍然會到達。若只要停止展開 `@` 檔案提及,請改為設定 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](https://code.claude.com/docs/zh-TW/env-vars#variables),需使用 Claude Code v2.1.299 或更新版本。Claude 接著會收到所提及的路徑,以及一則要求使用其檔案工具讀取這些路徑的備註。428* 如果您設定 `CLAUDE_CODE_DISABLE_ATTACHMENTS`,Claude Code 也會將 `@` 檔案提及作為純文字傳送,而不是將其展開為檔案內容。可用 subagent 清單和背景任務通知仍然會到達。

429* 若只要停止展開 `@` 檔案提及,請改為設定 [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](https://code.claude.com/docs/zh-TW/env-vars#variables),需使用 Claude Code v2.1.299 或更新版本。Claude 接著會收到所提及的路徑,以及一則要求使用其檔案工具讀取這些路徑的備註,而您的 `PreToolUse` hook 會將每次檔案讀取視為一次工具呼叫。

429 430 

430以下範例適用於在 `append` 中攜帶自己提交規則的代理程式。它將兩個 `attribution` 鍵設定為空字串以移除預告片和頁尾,並關閉 `includeGitInstructions`,以便 Claude Code 自己的提交工作流程指示不會與您的指示競爭:431以下範例適用於在 `append` 中攜帶自己提交規則的代理程式。它將兩個 `attribution` 鍵設定為空字串以移除預告片和頁尾,並關閉 `includeGitInstructions`,以便 Claude Code 自己的提交工作流程指示不會與您的指示競爭:

431 432 

Details

43應用活躍的 [權限模式](#permission-modes):43應用活躍的 [權限模式](#permission-modes):

44 44 

45* 在 `bypassPermissions` 模式下,Claude Code 核准到達此步驟的所有內容,但經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)以及被標記為 [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/zh-TW/permission-modes#dangerous-rm-operation-not-ruled-out) 的 Bash 命令除外,這些會改為傳遞下去。45* 在 `bypassPermissions` 模式下,Claude Code 核准到達此步驟的所有內容,但經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)以及被標記為 [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/zh-TW/permission-modes#dangerous-rm-operation-not-ruled-out) 的 Bash 命令除外,這些會改為傳遞下去。

46 * 若要在沒有提示的情況下執行這些移除,請參閱[關閉關鍵路徑移除提示](https://code.claude.com/docs/zh-TW/permission-modes.md#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode)。

46* 在 `acceptEdits` 模式下,Claude Code 核准 [接受編輯模式](#accept-edits-mode-acceptedits) 下列出的檔案操作。47* 在 `acceptEdits` 模式下,Claude Code 核准 [接受編輯模式](#accept-edits-mode-acceptedits) 下列出的檔案操作。

47* 在 `plan` 模式下,Claude Code 將檔案編輯工具發送到您的 `canUseTool` 回呼,無論 allow 規則如何。48* 在 `plan` 模式下,Claude Code 將檔案編輯工具發送到您的 `canUseTool` 回呼,無論 allow 規則如何。

48* 在其他模式下,請求會傳遞下去。49* 在其他模式下,請求會傳遞下去。


305> `allowed_tools` 不會限制此模式。所有工具都會被核准,而不僅是您列出的工具。以下控制措施仍然適用:306> `allowed_tools` 不會限制此模式。所有工具都會被核准,而不僅是您列出的工具。以下控制措施仍然適用:

306>307>

307> * Deny 規則、明確的 `ask` 規則和 hook 會在模式檢查之前進行評估,且仍可封鎖工具。308> * Deny 規則、明確的 `ask` 規則和 hook 會在模式檢查之前進行評估,且仍可封鎖工具。

308> * [您的組織設為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具、需要使用者互動的工具,以及經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths),仍會交由您的 `canUseTool` 回呼處理。識別這些移除操作的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,對您的應用程式[標記為 `always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools) 之自訂工具的呼叫也會交由該回呼處理。309> * [您的組織設為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具、需要使用者互動的工具,以及經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths),仍會交由您的 `canUseTool` 回呼處理。識別這些移除操作的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths),且您可以[關閉關鍵路徑移除提示](https://code.claude.com/docs/zh-TW/permission-modes.md#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode)。在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,對您的應用程式[標記為 `always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools) 之自訂工具的呼叫也會交由該回呼處理。

309> * [跨工作階段訊息傳遞防護措施](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)仍然適用。310> * [跨工作階段訊息傳遞防護措施](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)仍然適用。

310 311 

311#### Plan mode(`plan`)312#### Plan mode(`plan`)

Details

880| `continue_conversation` | `bool` | `False` | 繼續最近的對話 |880| `continue_conversation` | `bool` | `False` | 繼續最近的對話 |

881| `resume` | `str \| None` | `None` | 要繼續的工作階段 ID |881| `resume` | `str \| None` | `None` | 要繼續的工作階段 ID |

882| `session_id` | `str \| None` | `None` | 使用特定的工作階段 ID 而不是自動產生的 ID。必須是有效的 UUID。除非也設定了 `fork_session`,否則無法與 `continue_conversation` 或 `resume` 結合 |882| `session_id` | `str \| None` | `None` | 使用特定的工作階段 ID 而不是自動產生的 ID。必須是有效的 UUID。除非也設定了 `fork_session`,否則無法與 `continue_conversation` 或 `resume` 結合 |

883| `max_turns` | `int \| None` | `None` | 最大 agent 回合數(工具使用往返) |883| `max_turns` | `int \| None` | `None` | 最大 agent [回合](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#turns-and-messages)數 |

884| `max_budget_usd` | `float \| None` | `None` | 當用戶端成本估計達到此 USD 值時停止查詢。估計值可能超過此值,因此請[預留餘裕](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#budget-headroom)。僅計算呼叫本身的支出;從已繼續的工作階段恢復的總計不計算。如需準確性注意事項和重設行為,請參閱[追蹤成本和使用量](https://code.claude.com/docs/zh-TW/agent-sdk/cost-tracking.md) |884| `max_budget_usd` | `float \| None` | `None` | 當用戶端成本估計達到此 USD 值時停止查詢。估計值可能超過此值,因此請[預留餘裕](https://code.claude.com/docs/zh-TW/agent-sdk/agent-loop.md#budget-headroom)。僅計算呼叫本身的支出;從已繼續的工作階段恢復的總計不計算。如需準確性注意事項和重設行為,請參閱[追蹤成本和使用量](https://code.claude.com/docs/zh-TW/agent-sdk/cost-tracking.md) |

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

886| `enable_file_checkpointing` | `bool` | `False` | 啟用檔案變更追蹤以進行倒帶。請參閱[檔案檢查點功能](https://code.claude.com/docs/zh-TW/agent-sdk/file-checkpointing.md) |886| `enable_file_checkpointing` | `bool` | `False` | 啟用檔案變更追蹤以進行倒帶。請參閱[檔案檢查點功能](https://code.claude.com/docs/zh-TW/agent-sdk/file-checkpointing.md) |


2568 2568 

2569### Agent2569### Agent

2570 2570 

2571**工具名稱:** `Agent`。先前的名稱 `Task` 仍被接受為別名,初始化 [`SystemMessage`](#systemmessage) 中的 `tools` 列表為了向後相容性將此工具報告為 `Task`。2571**工具名稱:** `Agent`。當此工具可供工作階段使用時,先前的名稱 `Task` 仍被接受為別名。

2572 

2573初始化 [`SystemMessage`](#systemmessage) 中的 `tools` 列表為了向後相容性將此工具報告為 `Task`。

2572 2574 

2573**輸入:**2575**輸入:**

2574 2576 


3642| `deniedDomains` | `list[str]` | `[]` | 沙箱化程序無法存取的網域名稱。優先於 `allowedDomains` |3644| `deniedDomains` | `list[str]` | `[]` | 沙箱化程序無法存取的網域名稱。優先於 `allowedDomains` |

3643| `allowManagedDomainsOnly` | `bool` | `False` | 僅限受管設定:在受管設定中設定時,忽略 `allowedDomains` 和來自非受管設定來源的 `WebFetch(domain:...)` 允許規則。透過 SDK 選項設定時無效 |3645| `allowManagedDomainsOnly` | `bool` | `False` | 僅限受管設定:在受管設定中設定時,忽略 `allowedDomains` 和來自非受管設定來源的 `WebFetch(domain:...)` 允許規則。透過 SDK 選項設定時無效 |

3644| `allowUnixSockets` | `list[str]` | `[]` | 僅限 macOS:程序可以存取的 Unix socket 路徑,例如 Docker socket。在 Linux 上被忽略 |3646| `allowUnixSockets` | `list[str]` | `[]` | 僅限 macOS:程序可以存取的 Unix socket 路徑,例如 Docker socket。在 Linux 上被忽略 |

3645| `allowAllUnixSockets` | `bool` | `False` | 允許存取所有 Unix sockets |3647| `allowAllUnixSockets` | `bool` | `False` | 允許存取所有 Unix sockets,並在 Linux 上允許存取 VM sockets(`AF_VSOCK`) |

3646| `allowLocalBinding` | `bool` | `False` | 允許程序繫結到本地連接埠(例如開發伺服器) |3648| `allowLocalBinding` | `bool` | `False` | 允許程序繫結到本地連接埠(例如開發伺服器) |

3647| `allowMachLookup` | `list[str]` | `[]` | 僅限 macOS:允許的 XPC/Mach 服務名稱。支援尾部萬用字元 |3649| `allowMachLookup` | `list[str]` | `[]` | 僅限 macOS:允許的 XPC/Mach 服務名稱。支援尾部萬用字元 |

3648| `httpProxyPort` | `int` | `None` | 網路請求的 HTTP proxy 連接埠 |3650| `httpProxyPort` | `int` | `None` | 網路請求的 HTTP proxy 連接埠 |

Details

16 16 

17## 先決條件17## 先決條件

18 18 

19* **Node.js 18+** 或 **Python 3.10+**19* **Node.js 18.14+** 或 **Python 3.10+**

20* 一個 **Anthropic 帳戶**。如果您還沒有帳戶,[在此註冊](https://platform.claude.com/)。20* 一個 **Anthropic 帳戶**。如果您還沒有帳戶,[在此註冊](https://platform.claude.com/)。

21 21 

22## 設定22## 設定

Details

118 118 

119### 處理被中斷的串流119### 處理被中斷的串流

120 120 

121如果串流在訊息中途被中斷,例如您中斷了回合或連線中斷時,您仍會在回合結束前收到該訊息的 `message_stop`。被中斷的文字或思考區塊也會收到其 `content_block_stop`。被中斷的工具呼叫則不會,因此如果 `message_stop` 到達時某個工具呼叫的區塊仍處於開啟狀態,請將該呼叫的輸入視為不完整。121如果串流在訊息中途被中斷,您仍會在回合結束前收到該訊息的 `message_stop`。串流被中斷的原因包括回合遭中斷、連線中斷,以及改用非串流請求。在該 `message_stop` 之前,`content_block_stop` 和 `message_delta` 可能會缺少:

122 

123* **`content_block_stop`**:會針對當時開啟的區塊到達,除非該區塊是工具呼叫。如果 `message_stop` 到達時某個工具呼叫的區塊仍處於開啟狀態,請將該呼叫的輸入視為不完整。

124* **`message_delta`**:在您中斷回合時會到達,但在連線中斷或改用非串流請求後可能會缺少,因此對於被中斷的訊息,請勿等待它。

122 125 

123在 Claude Code v2.1.290 之前,被中斷的串流可能會在沒有 `message_stop` 的情況下結束回合,因此您根據串流事件呈現的回覆可能會一直顯示為進行中。TypeScript Agent SDK 從 v0.3.290 起內建 Claude Code v2.1.290 或更新版本,Python Agent SDK 則從 v0.2.164 起內建。如果回合結束後回覆仍一直顯示為進行中,請更新 SDK。126在 Claude Code v2.1.290 之前,被中斷的串流可能會在沒有 `message_stop` 的情況下結束回合,因此您根據串流事件呈現的回覆可能會一直顯示為進行中。TypeScript Agent SDK 從 v0.3.290 起內建 Claude Code v2.1.290 或更新版本,Python Agent SDK 則從 v0.2.164 起內建。如果回合結束後回覆仍一直顯示為進行中,請更新 SDK。

124 127 

Details

105 105 

106傳回一個 `Promise<`[`WarmQuery`](#warmquery)`>`,在子程序啟動並完成初始化交握後解析。106傳回一個 `Promise<`[`WarmQuery`](#warmquery)`>`,在子程序啟動並完成初始化交握後解析。

107 107 

108在交握完成之前,`SessionStart` 或 `Setup` hook 所發出的 [`hook_progress`](#sdkhookprogressmessage) 訊息中,您只會收到最新的一則,其中包含該 hook 到目前為止的所有輸出。`startup()` 會保留該訊息、該 hook 的 [`hook_started`](#sdkhookstartedmessage) 訊息,以及子程序在交握完成前發出的任何其他訊息。當您對 `WarmQuery` 呼叫 `.query()` 並迭代結果時,這些保留的訊息就會傳遞給您。

109 

108#### 範例110#### 範例

109 111 

110盡早呼叫 `startup()`,例如在應用程式啟動時,然後在提示詞準備好後,對傳回的控制代碼呼叫 `.query()`。這樣可將子程序啟動與初始化移出關鍵路徑。112盡早呼叫 `startup()`,例如在應用程式啟動時,然後在提示詞準備好後,對傳回的控制代碼呼叫 `.query()`。這樣可將子程序啟動與初始化移出關鍵路徑。


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

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

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

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

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

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

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


1403 };1405 };

1404```1406```

1405 1407 

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

1409 

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

1407 1411 

1408內建工具行為的設定。1412內建工具行為的設定。


1464 1468 

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

1466 1470 

1467程序內 MCP 伺服器的設定,即由 [`createSdkMcpServer()`](#createsdkmcpserver) 建立並在您應用程式的程序內執行的伺服器。它是 `createSdkMcpServer()` 回傳的物件,再加上您自行新增的選用 `tools` 清單,內含 [`McpServerToolPolicy`](#mcpservertoolpolicy) 項目。若要要求對伺服器某個工具的呼叫進行核准,或拒絕這些呼叫,請新增一個指名該工具的項目。1471行程內 MCP 伺服器的設定。它就是 [`createSdkMcpServer()`](#createsdkmcpserver) 所回傳的內容,再加上您可自行新增、由 [`McpServerToolPolicy`](#mcpservertoolpolicy) 項目組成的選用 `tools` 清單。

1468 1472 

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

1470type McpSdkServerConfigWithInstance = {1474type McpSdkServerConfigWithInstance = {


1476};1480};

1477```1481```

1478 1482 

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

1480 1484 

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

1482 1486 

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

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


1517}1521}

1518```1522```

1519 1523 

1520當 Claude 呼叫此工具時,腳本會在 `delete_record` 工具執行之前列印 `Approval requested for mcp__records__delete_record`,儘管 `allowedTools` 項目原本會核准此呼叫。1524當 Claude 呼叫 `delete_record` 時,指令碼會印出 `Approval requested for mcp__records__delete_record`。

1521 1525 

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

1523 1527 


1556 1560 

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

1558 1562 

1559在 `auto`、`plan` 和 `bypassPermissions` 模式下,對標記為 [`always_ask`](#permission-policy-values) 的工具的呼叫,可能在抵達您的 `canUseTool` 回呼之前就被核准。請在此清單中找到您工作階段的模式,了解該核准何時發生,以及要設定什麼才能讓呼叫仍抵達您的回呼:1563在 `auto`、`plan` 和 `bypassPermissions` 模式下,對標記為 [`always_ask`](#permission-policy-values) 之工具的呼叫,可能在到達您的 `canUseTool` 回呼之前就被核准。

1560 1564 

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

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


1692 1696 

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

1694 1698 

1695`agent_id` 識別產生該訊息的 subagent,主執行緒的訊息不會有此欄位。其值等於該 subagent 的 [`task_started`](#sdktaskstartedmessage) 及其他任務事件上的 `task_id`,且在 subagent [恢復](https://code.claude.com/docs/zh-TW/agent-sdk/subagents.md#resume-subagents)時保持不變。此欄位需要 Agent SDK v0.3.292 或更新版本。1699`agent_id` 識別產生該訊息的 subagent,主執行緒訊息不含此欄位。其值等於該 subagent 的 [`task_started`](#sdktaskstartedmessage) 及其他任務事件上的 `task_id`,且在 subagent [恢復](https://code.claude.com/docs/zh-TW/agent-sdk/subagents.md#resume-subagents)時保持不變。在來自[巢狀 subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#let-subagents-spawn-their-own-subagents) 的訊息上,它指的是該巢狀 subagent,而非產生它的 subagent。此欄位需要 Agent SDK v0.3.292 或更新版本。

1696 1700 

1697請依 `agent_id` 將 subagent 的訊息與其任務事件配對,而不是將訊息的 `parent_tool_use_id` 與任務事件的 `tool_use_id` 配對。當工具呼叫恢復 subagent 時,任務事件會帶有該呼叫的 `tool_use_id`,而訊息則保留最初啟動該 subagent 之工具呼叫的 `parent_tool_use_id`,因此兩者將不再相符。1701請依 `agent_id` 將 subagent 的訊息與其任務事件配對,而不是將訊息的 `parent_tool_use_id` 與任務事件的 `tool_use_id` 配對。當工具呼叫恢復 subagent 時,任務事件會帶有該呼叫的 `tool_use_id`,而訊息則保留最初啟動該 subagent 之工具呼叫的 `parent_tool_use_id`,因此兩者將不再相符。

1698 1702 


3272 3276 

3273### Agent3277### Agent

3274 3278 

3275**工具名稱:** `Agent`。先前的名稱 `Task` 仍被接受為別名,[`SDKSystemMessage`](#sdksystemmessage) 初始化訊息中的 `tools` 陣列目前為了向後相容性將此工具列為 `Task`。3279**工具名稱:** `Agent`。當此工具可供工作階段使用時,先前的名稱 `Task` 仍被接受為別名。

3280 

3281[`SDKSystemMessage`](#sdksystemmessage) 初始化訊息中的 `tools` 陣列為了向後相容性將此工具列為 `Task`。

3276 3282 

3277> [!NOTE]3283> [!NOTE]

3278>3284>


4009 4015 

4010### Agent4016### Agent

4011 4017 

4012**工具名稱:** `Agent`。先前的名稱 `Task` 仍被接受為別名,且 [`SDKSystemMessage`](#sdksystemmessage) 初始化訊息中的 `tools` 陣列目前仍將此工具列為 `Task` 以保持向後相容性。4018**工具名稱:** `Agent`。當此工具可供工作階段使用時,先前的名稱 `Task` 仍被接受為別名。

4013 4019 

4014```typescript theme={null}4020```typescript theme={null}

4015type AgentOutput =4021type AgentOutput =


5209 5215 

5210#### 當工具的 `_meta.ui` 僅包含 `visibility` 時5216#### 當工具的 `_meta.ui` 僅包含 `visibility` 時

5211 5217 

5212如果您的伺服器為工具宣告了 `ui.resourceUri`,但您的應用程式收到的 `_meta.ui` 僅包含 `visibility`,表示伺服器傳送的 `ui` 物件未通過 Claude Code 的某項檢查。Claude Code 會分別檢查 `ui` 和 `ui/resourceUri`,因此當其中一個鍵未通過時,另一個鍵仍可能送達您的應用程式。請將您伺服器 `tools/list` 回應中的 `_meta` 與每個鍵的檢查進行比較:5218如果您的伺服器為工具宣告了 `ui.resourceUri`,但您的應用程式收到的 `_meta.ui` 僅包含 `visibility`,表示伺服器傳送的 `ui` 物件未通過 Claude Code 的某項檢查。請將您伺服器 `tools/list` 回應中的 `_meta` 與每個鍵的檢查進行比較:

5213 5219 

5214* **`ui`**:若三項檢查全部通過,會原封不動地送達您的應用程式,包括 `resourceUri` 和 `visibility` 以外的任何成員:5220* **`ui`**:若三項檢查全部通過,會原封不動地送達您的應用程式,包括 `resourceUri` 和 `visibility` 以外的任何成員:

5215 5221 


5552 5558 

5553Claude Code 將此訊息、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage) 立即傳遞至訊息串流,包括在工作階段啟動期間 `SessionStart` 或 `Setup` hook 仍在執行時。Claude Code v2.1.169 至 v2.1.203 在 `SessionStart` 或 `Setup` hook 完成後以一個批次傳遞這些訊息;v2.1.204 恢復了即時傳遞。5559Claude Code 將此訊息、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage) 立即傳遞至訊息串流,包括在工作階段啟動期間 `SessionStart` 或 `Setup` hook 仍在執行時。Claude Code v2.1.169 至 v2.1.203 在 `SessionStart` 或 `Setup` hook 完成後以一個批次傳遞這些訊息;v2.1.204 恢復了即時傳遞。

5554 5560 

5561如果您使用 [`startup()`](#startup) 啟動工作階段,這些訊息會在您呼叫 `.query()` 並反覆運算結果後送達。

5562 

5555```typescript theme={null}5563```typescript theme={null}

5556type SDKHookStartedMessage = {5564type SDKHookStartedMessage = {

5557 type: "system";5565 type: "system";


6071| `allowManagedDomainsOnly` | `boolean` | `false` | 僅受管理設定。在[受管理設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定時,只有 `allowedDomains` 項目和來自受管理設定的 `WebFetch(domain:...)` 允許規則會被接受,來自使用者、專案或本機設定的允許項目會被忽略。透過 SDK,透過 [`managedSettings`](#options) 選項傳遞它 |6079| `allowManagedDomainsOnly` | `boolean` | `false` | 僅受管理設定。在[受管理設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定時,只有 `allowedDomains` 項目和來自受管理設定的 `WebFetch(domain:...)` 允許規則會被接受,來自使用者、專案或本機設定的允許項目會被忽略。透過 SDK,透過 [`managedSettings`](#options) 選項傳遞它 |

6072| `allowLocalBinding` | `boolean` | `false` | 允許程序繫結到本機連接埠(例如用於開發伺服器) |6080| `allowLocalBinding` | `boolean` | `false` | 允許程序繫結到本機連接埠(例如用於開發伺服器) |

6073| `allowUnixSockets` | `string[]` | `[]` | 程序可以存取的 Unix socket 路徑(例如 Docker socket) |6081| `allowUnixSockets` | `string[]` | `[]` | 程序可以存取的 Unix socket 路徑(例如 Docker socket) |

6074| `allowAllUnixSockets` | `boolean` | `false` | 允許存取所有 Unix socket |6082| `allowAllUnixSockets` | `boolean` | `false` | 允許存取所有 Unix socket,並在 Linux 上允許存取 VM socket(`AF_VSOCK`) |

6075| `httpProxyPort` | `number` | `undefined` | 用於網路請求的 HTTP proxy 連接埠 |6083| `httpProxyPort` | `number` | `undefined` | 用於網路請求的 HTTP proxy 連接埠 |

6076| `socksProxyPort` | `number` | `undefined` | 用於網路請求的 SOCKS proxy 連接埠 |6084| `socksProxyPort` | `number` | `undefined` | 用於網路請求的 SOCKS proxy 連接埠 |

6077 6085 

agent-view.md +8 −2

Details

320 320 

321#### 找回過去的工作階段321#### 找回過去的工作階段

322 322 

323若要在 Claude Code v2.1.212 或更新版本上找回工作階段,請在 [分派輸入](#dispatch-an-agent-from-agent-view) 中輸入 `/resume`。選擇器會開啟,依最新優先的順序列出您開啟 agent 檢視時所在儲存庫的過去工作階段,包括您已從清單中刪除的工作階段。已有列的工作階段不會列出。按 `Enter` 會將選定的工作階段恢復為背景工作階段,使其以列的形式重新加入清單。323若要找回工作階段,請在 [分派輸入](#dispatch-an-agent-from-agent-view) 中輸入 `/resume`。選擇器會開啟,依最新優先的順序列出您開啟 agent 檢視時所在儲存庫的過去工作階段,包括您已從清單中刪除的工作階段。已有列的工作階段不會列出。按 `Enter` 會將選定的工作階段恢復為背景工作階段,使其以列的形式重新加入清單。

324 324 

325在以下情況下,`/resume` 會失敗並顯示 `isn't available in agent view`:325在以下情況下,`/resume` 會失敗並顯示 `isn't available in agent view`:

326 326 


410* `/logout` 會將您登出410* `/logout` 會將您登出

411* `/model`、`/effort` 和 `/fast` 會設定[您接下來分派的工作階段的啟動方式](#set-the-model-effort-and-fast-mode)。`/effort` 和 `/fast` 需要 Claude Code v2.1.299 或更新版本。411* `/model`、`/effort` 和 `/fast` 會設定[您接下來分派的工作階段的啟動方式](#set-the-model-effort-and-fast-mode)。`/effort` 和 `/fast` 需要 Claude Code v2.1.299 或更新版本。

412* `/login` 會開啟登入對話框,讓您無需附加到工作階段即可重新登入412* `/login` 會開啟登入對話框,讓您無需附加到工作階段即可重新登入

413* 單獨的 `/resume` 或其別名 `/continue` 會開啟儲存庫過去工作階段的選擇器,以將其作為背景工作階段[帶回](#bring-back-a-past-session)。需要 Claude Code v2.1.212 或更新版本413* 單獨的 `/resume` 或其別名 `/continue` 會開啟儲存庫過去工作階段的選擇器,以將其作為背景工作階段[帶回](#bring-back-a-past-session)

414 414 

415Skill、您自己的命令,以及會展開提示詞的內建命令(例如 `/init`)會作為第一個提示詞傳送到新的背景工作階段。提示 `isn't available in agent view` 表示您輸入的內建命令並未執行。若要執行它,請[附加到工作階段](#attach-to-a-session)並在該處輸入。您輸入的所有內容都會保留在該提示旁的輸入框中,以便您編輯。415Skill、您自己的命令,以及會展開提示詞的內建命令(例如 `/init`)會作為第一個提示詞傳送到新的背景工作階段。提示 `isn't available in agent view` 表示您輸入的內建命令並未執行。若要執行它,請[附加到工作階段](#attach-to-a-session)並在該處輸入。您輸入的所有內容都會保留在該提示旁的輸入框中,以便您編輯。

416 416 


454 454 

455當 [agent view 已關閉](#turn-off-agent-view)時,`/fork` 會啟動[分叉的 subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation),而不是複製工作階段。455當 [agent view 已關閉](#turn-off-agent-view)時,`/fork` 會啟動[分叉的 subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation),而不是複製工作階段。

456 456 

457##### 向副本提供提示詞並開啟其工作階段

458 

457傳遞提示詞(例如 `/fork open a draft pull request with the work so far`),副本會立即開始處理。若未提供提示詞,副本會等待其第一個指令:在 `claude agents` 中選取其列並按 `Space` 傳送一個指令,或執行 `claude attach <id>`。在等待期間,所選列會顯示 `space to send it a prompt`。459傳遞提示詞(例如 `/fork open a draft pull request with the work so far`),副本會立即開始處理。若未提供提示詞,副本會等待其第一個指令:在 `claude agents` 中選取其列並按 `Space` 傳送一個指令,或執行 `claude attach <id>`。在等待期間,所選列會顯示 `space to send it a prompt`。

458 460 

459`/fork` 的確認訊息為一行,顯示副本的狀態(例如 `session running`)、其 agent view 列的名稱,以及供 `claude attach` 使用的工作階段 ID。點擊名稱即可切換到副本:此工作階段會移到背景(與按 `←` 相同),並由 agent view 開啟副本的工作階段。461`/fork` 的確認訊息為一行,顯示副本的狀態(例如 `session running`)、其 agent view 列的名稱,以及供 `claude attach` 使用的工作階段 ID。點擊名稱即可切換到副本:此工作階段會移到背景(與按 `←` 相同),並由 agent view 開啟副本的工作階段。

460 462 

463##### 副本的執行位置

464 

461除非副本[就地編輯](#how-file-edits-are-isolated),否則 Claude Code 會指示它在進行程式碼變更前先建立自己的 worktree。在 git 儲存庫外,只有從 hook 建立的 worktree 移出的副本才會收到此指示;若沒有 [`WorktreeCreate` hook](https://code.claude.com/docs/zh-TW/hooks#worktreecreate),副本會就地編輯。從您的 worktree 移出的副本也會被告知絕不可編輯、在其中執行命令或進入該 worktree,無論隔離設定為何。465除非副本[就地編輯](#how-file-edits-are-isolated),否則 Claude Code 會指示它在進行程式碼變更前先建立自己的 worktree。在 git 儲存庫外,只有從 hook 建立的 worktree 移出的副本才會收到此指示;若沒有 [`WorktreeCreate` hook](https://code.claude.com/docs/zh-TW/hooks#worktreecreate),副本會就地編輯。從您的 worktree 移出的副本也會被告知絕不可編輯、在其中執行命令或進入該 worktree,無論隔離設定為何。

462 466 

463副本的起始位置取決於目前工作階段的執行位置:467副本的起始位置取決於目前工作階段的執行位置:


467* 當您在具有主工作樹的儲存庫的連結 worktree 內啟動工作階段時,副本會在該主工作樹中開始,套用相同的「使用自己的 worktree」規則,但沒有分支指示。確認訊息在此也以 `runs in the origin tree` 結尾。471* 當您在具有主工作樹的儲存庫的連結 worktree 內啟動工作階段時,副本會在該主工作樹中開始,套用相同的「使用自己的 worktree」規則,但沒有分支指示。確認訊息在此也以 `runs in the origin tree` 結尾。

468* 在 bare 儲存庫配置的 worktree 內啟動的工作階段沒有可返回的主工作樹,因此副本會留在原處,確認訊息以 `edits this checkout` 結尾。當 worktree 隔離在不位於連結 worktree 內的工作階段中[已關閉](#how-file-edits-are-isolated)時,也會顯示相同的說明,因為副本此時會編輯您開啟的檔案。472* 在 bare 儲存庫配置的 worktree 內啟動的工作階段沒有可返回的主工作樹,因此副本會留在原處,確認訊息以 `edits this checkout` 結尾。當 worktree 隔離在不位於連結 worktree 內的工作階段中[已關閉](#how-file-edits-are-isolated)時,也會顯示相同的說明,因為副本此時會編輯您開啟的檔案。

469 473 

474##### 無法 fork 的工作階段

475 

470使用副本不會繼承的啟動旗標所啟動的工作階段(例如取代的系統提示詞或 `--tools` 允許清單)無法 fork;Claude Code 會說明這一點,而不是建立不完整的副本。從 agent view 分派的工作階段可正常 fork:副本會使用與其來源工作階段相同的 [agent 定義](https://code.claude.com/docs/zh-TW/sub-agents.md)和附加指示啟動。476使用副本不會繼承的啟動旗標所啟動的工作階段(例如取代的系統提示詞或 `--tools` 允許清單)無法 fork;Claude Code 會說明這一點,而不是建立不完整的副本。從 agent view 分派的工作階段可正常 fork:副本會使用與其來源工作階段相同的 [agent 定義](https://code.claude.com/docs/zh-TW/sub-agents.md)和附加指示啟動。

471 477 

472#### 移到背景時會帶入的內容478#### 移到背景時會帶入的內容

agents.md +1 −1

Details

32 32 

33> [!NOTE]33> [!NOTE]

34>34>

35> 同時執行多個工作階段或子代理會增加令牌使用量。有關使用量和速率限制詳細資訊,請參閱 [成本](https://code.claude.com/docs/zh-TW/costs.md)。35> 同時執行多個工作階段或 subagent 會倍增 token 使用量。有關使用量和速率限制詳細資訊,請參閱 [成本](https://code.claude.com/docs/zh-TW/costs.md)。

36 36 

37## 選擇一個方法37## 選擇一個方法

38 38 

Details

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

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

253 253 

254在 v2.1.280 之前,Amazon Bedrock 上的主要模型預設為 Opus 5,`opus` 別名從 v2.1.219 起解析為 Opus 5。

255 

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

255 257 

256* 當您使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定選取主要模型時,背景工作使用該模型。當 Claude Code 在您使用 [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) 設定的模型上啟動工作階段時,背景工作也使用該模型。設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 而不設定 `ANTHROPIC_DEFAULT_SONNET_MODEL` 也算作選項,因為內建 Sonnet 模型可能在引導自己的 Opus 的帳戶中無法啟用。258* 當您使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定選取主要模型時,背景工作使用該模型。當 Claude Code 在您使用 [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) 設定的模型上啟動工作階段時,背景工作也使用該模型。設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 而不設定 `ANTHROPIC_DEFAULT_SONNET_MODEL` 也算作選項,因為內建 Sonnet 模型可能在引導自己的 Opus 的帳戶中無法啟用。


260>262>

261> Opus 模型的每個 token 價格高於 Sonnet 模型,因此如果您不釘選主要模型,將會以 Opus 費率計費。若要使用 Sonnet 4.5 作為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引導預設且不設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保留為預設值。263> Opus 模型的每個 token 價格高於 Sonnet 模型,因此如果您不釘選主要模型,將會以 Opus 費率計費。若要使用 Sonnet 4.5 作為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。使用 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引導預設且不設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保留為預設值。

262 264 

263在 v2.1.280 之前,Amazon Bedrock 上的主要模型預設為 Opus 5,`opus` 別名從 v2.1.219 解析為 Opus 5。在 v2.1.207 至 v2.1.218 上,Amazon Bedrock 上的主要模型預設為 Opus 4.8,`opus` 別名解析為 Opus 4.8。

264 

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

266 266 

267```bash theme={null}267```bash theme={null}

artifacts.md +3 −3

Details

95 95 

96選擇一個 artifact,然後按下以下其中一個按鍵:96選擇一個 artifact,然後按下以下其中一個按鍵:

97 97 

98* **`Enter`**:若該 artifact 已附加到目前的工作階段,則在瀏覽器中開啟它;若尚未附加,則將其附加到目前的工作階段。在 v2.1.216 之前,`Enter` 會在瀏覽器中開啟它98* **`Enter`**:若該 artifact 已附加到目前的工作階段,則在瀏覽器中開啟它;若尚未附加,則將其附加到目前的工作階段

99* **`o`**:在瀏覽器中開啟它99* **`o`**:在瀏覽器中開啟它

100* **`c`**:複製其連結100* **`c`**:複製其連結

101* **`d`**:在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)以外,經您確認後永久刪除您擁有的 artifact。其連結將對所有人失效,包括您自己101* **`d`**:在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)以外,經您確認後永久刪除您擁有的 artifact。其連結將對所有人失效,包括您自己


202若要建立連接器支援的頁面,請在提示中命名連接器和您想要的資料:202若要建立連接器支援的頁面,請在提示中命名連接器和您想要的資料:

203 203 

204```text wrap theme={null}204```text wrap theme={null}

205建立一個顯示我們開放拉取請求的儀表板成品,該成品在頁面載入時透過我的 GitHub 連接器拉取即時清單。205建立一個顯示我們開放中 pull request 的儀表板 artifact,該 artifact 在頁面載入時透過我的 GitHub 連接器拉取即時清單。

206```206```

207 207 

208Claude 會在發佈時宣告該頁面可能呼叫的連接器,且該頁面無法呼叫該宣告之外的連接器。只有來自您 claude.ai 帳戶的連接器符合資格:Claude 在宣告中命名它們,當有人檢視該頁面時,每個呼叫都會 [透過檢視帳戶自己的連接](#how-connector-calls-work-for-viewers) 執行到該連接器。您在 Claude Code 中設定的本機 MCP 伺服器(例如來自 `.mcp.json` 的伺服器)可以在 Claude 建立頁面時提供資料,但已發佈的頁面無法呼叫它們。208Claude 會在發佈時宣告該頁面可能呼叫的連接器,且該頁面無法呼叫該宣告之外的連接器。只有來自您 claude.ai 帳戶的連接器符合資格:Claude 在宣告中命名它們,當有人檢視該頁面時,每個呼叫都會 [透過檢視帳戶自己的連接](#how-connector-calls-work-for-viewers) 執行到該連接器。您在 Claude Code 中設定的本機 MCP 伺服器(例如來自 `.mcp.json` 的伺服器)可以在 Claude 建立頁面時提供資料,但已發佈的頁面無法呼叫它們。


225 225 

226當連接器支援的頁面呈現但其即時區段對您組織中的檢視者保持空白時,請檢查這些原因:226當連接器支援的頁面呈現但其即時區段對您組織中的檢視者保持空白時,請檢查這些原因:

227 227 

228* **檢視者尚未連接連接器**:連接器是按帳戶的,因此每個檢視者都需要自己的連接到該頁面呼叫的每個連接器。他們可以在 claude.ai 上的 **Settings > Connectors** 下新增一個,然後重新載入頁面。228* **檢視者尚未連接連接器**:連接器是按帳戶的,因此每個檢視者都需要自己的連接到該頁面呼叫的每個連接器。他們可以在 claude.ai 上的 [**Customize > Connectors**](https://claude.ai/customize/connectors) 下新增一個,然後重新載入頁面。

229* **檢視者拒絕了許可要求**:拒絕會持續到該頁面載入的其餘部分。重新載入頁面會帶回許可要求。229* **檢視者拒絕了許可要求**:拒絕會持續到該頁面載入的其餘部分。重新載入頁面會帶回許可要求。

230* **連接器呼叫已針對組織關閉**:擁有者控制管理設定中的 [**Enable artifact connectors** 切換](#control-connector-calls-from-artifacts)。230* **連接器呼叫已針對組織關閉**:擁有者控制管理設定中的 [**Enable artifact connectors** 切換](#control-connector-calls-from-artifacts)。

231* **頁面呼叫連接器未公開的工具名稱**:受影響的區段對所有人(包括您)保持空白。當頁面命名閘道式連接器後面的個別工具,而該連接器只公開其自己的少數工具時,就會發生這種情況。要求 Claude 修正頁面呼叫的工具名稱並再次發佈。231* **頁面呼叫連接器未公開的工具名稱**:受影響的區段對所有人(包括您)保持空白。當頁面命名閘道式連接器後面的個別工具,而該連接器只公開其自己的少數工具時,就會發生這種情況。要求 Claude 修正頁面呼叫的工具名稱並再次發佈。

best-practices.md +416 −354

Details

4 4 

5# Claude Code 最佳實踐5# Claude Code 最佳實踐

6 6 

7> 從設定環境到跨平行工作階段擴展,充分利用 Claude Code 的提示和模式。7> 充分發揮 Claude Code 的效用:告訴 Claude 它看不到的資訊、給它一個可執行的檢查,並強制執行不容例外的規則。

8 8 

9Claude Code 是一個代理式編碼環境。與等待回答問題的聊天機器人不同,Claude Code 可以讀取您的檔案、執行命令、進行變更,並在您觀看、重新導向或完全離開時自主地解決問題。9Claude Code 的設計讓您在大多數情況下,於全新工作階段中輸入的第一個簡單提示詞就已經能做對事情,完全不需要您事先進行任何設定。

10 10 

11這改變了您的工作方式。您不再自己編寫程式碼並要求 Claude 審查,而是描述您想要的內容,Claude 會找出如何建立它。Claude 會探索、規劃和實施。11例如:

12 12 

13但這種自主性仍然伴隨著學習曲線。Claude 在您需要理解的某些限制條件內工作。13* 為了讓命令能安全執行而不需要您逐一核准,新的終端機和 VS Code 工作階段會以[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)啟動,由分類器在任何有風險的操作執行前先進行審查。

14* 為了讓您的主要對話保持專注,同時讓獨立的工作平行進行,Claude 會將工作委派給 subagent,並且只在必要時才回報。

15* 為了讓長時間的工作階段能持續進行而不需要您管理,對話會在上下文視窗填滿之前自動壓縮。

14 16 

15本指南涵蓋了在 Anthropic 內部團隊和在各種程式碼庫、語言和環境中使用 Claude Code 的工程師中已證明有效的模式。有關代理式迴圈在幕後如何運作的資訊,請參閱 [Claude Code 如何運作](https://code.claude.com/docs/zh-TW/how-claude-code-works.md)。17本頁說明預設行為不夠用時該怎麼做。這通常發生在您的專案有 Claude 無法單憑程式碼看出的知識、規則或限制時:

16 18 

17***19* 只存在於某個人腦中的部署流程

20* 絕對不能被讀取的檔案

21* 任何工作必須通過才能算完成的檢查

22* 您必須控制在範圍內的預算

18 23 

19大多數最佳實踐都基於一個限制條件:Claude 的內容視窗填滿得很快,隨著填滿,效能會下降。24沒有任何預設值能知道您專案的這些事情,因此在這方面,您只需少量設定就能獲得豐厚回報。

20 25 

21Claude 的內容視窗保存您的整個對話,包括每條訊息、Claude 讀取的每個檔案和每個命令輸出。但是,這可能會很快填滿。單一除錯工作階段或程式碼庫探索可能會產生並消耗數萬個 token。26當工作階段的進展不如預期時,原因幾乎總是以下其中之一:

22 27 

23這很重要,因為隨著內容填滿,LLM 效能會下降。當內容視窗即將滿時,Claude 可能會開始「忘記」早期的指示或犯更多錯誤。內容視窗是最重要的資源,需要管理。若要查看工作階段在實踐中如何填滿,請 [觀看互動式逐步解說](https://code.claude.com/docs/zh-TW/context-window.md),了解啟動時載入的內容以及每個檔案讀取的成本。使用 [自訂狀態列](https://code.claude.com/docs/zh-TW/statusline.md) 持續追蹤內容使用情況,並查看 [減少 token 使用](https://code.claude.com/docs/zh-TW/costs.md#reduce-token-usage) 以了解減少 token 使用的策略。28* Claude 打造出的東西與您想像的不同,或者它必須在每個工作階段開始時重新發現同一件事實。它缺少了無法透過閱讀儲存庫取得的資訊。請參閱[告訴 Claude 它看不到的資訊](#tell-claude-what-it-cant-see)。

29* Claude 說它完成了,但其實並未完全完成,通常是因為它沒有辦法檢查自己的工作。請參閱[給 Claude 一個可執行的檢查](#give-claude-a-check-to-run)。

30* Claude 做了在這個儲存庫中絕對不能發生的事,或跳過了必須執行的步驟。單靠提示詞無法保證這兩者。請參閱[強制執行不容例外的規則](#enforce-the-rules-that-cant-have-exceptions)。

31* Claude 做對了,但花費的時間、token 或權限提示超出了這項任務應有的成本。請參閱[變更預設值](#change-a-default)。

24 32 

25***33[讓 Claude 在您不在時執行](#let-claude-run-without-you)將同樣的四點套用到無人值守的執行上,而[可以停止做的事](#what-you-can-stop-doing)則列出了因目前的模型而變得不再必要的建議。

26 34 

27## 給 Claude 一種驗證其工作的方式35> [!NOTE]

28 

29> [!TIP]

30>36>

31> 給 Claude 一個可以運行的檢查:測試、構建、截圖比較。這是您可以觀看的會話和可以離開的會話之間的區別。37> 整個團隊的設定請參閱另一個頁面:[為您的組織設定 Claude Code](https://code.claude.com/docs/zh-TW/admin-setup.md)。

32 38 

33Claude 在工作看起來完成時停止。沒有可以運行的檢查,「看起來完成」是唯一可用的信號,您成為驗證循環:每個錯誤都在等待您注意到它。給 Claude 一些能產生通過或失敗的東西,循環就會自動關閉。Claude 完成工作、運行檢查、讀取結果,並迭代直到檢查通過。39## 確定性與非確定性指令

34 40 

35檢查是任何在對話中返回 Claude 可以讀取的信號的東西:測試套件、構建退出代碼、linter、針對固定裝置比較輸出的腳本,或與設計進行比較的[瀏覽器截圖](https://code.claude.com/docs/zh-TW/chrome.md)。執行 [`/verify`](https://code.claude.com/docs/zh-TW/skills#run-and-verify-your-app) 在 Claude 的檢查通過後自己確認針對執行中應用程式的變更。41您給 Claude Code 的每一項指令都屬於以下其中一種:

36 42 

37| 策略 | 之前 | 之後 |431. 非確定性:您撰寫指令,由 Claude(模型)讀取。這可以是您的提示詞、`CLAUDE.md` 或 skill。接著由模型決定如何處理這些資訊。它通常會遵循您的命令,而且目前的模型很擅長在沒有太多上下文的情況下理解您的意圖,但*無法保證*它會遵循您的指令。它仍然可能決定不做某些事,或做其他的事。

38| - | - | - |442. 確定性:您設定指令,由 Claude Code(執行框架)*必須*執行。這可以是 hook、拒絕規則或受管設定。無論模型決定做什麼,Claude Code 每次都會套用它。

39| **提供驗證標準** | *「實現一個驗證電子郵件地址的函數」* | *「編寫一個 validateEmail 函數。示例測試用例:[user@example.com](mailto:user@example.com) 為真,invalid 為假,[user@.com](mailto:user@.com) 為假。實施後運行測試」* |

40| **以視覺方式驗證 UI 更改** | *「使儀表板看起來更好」* | *「\[粘貼截圖] 實施此設計。對結果進行截圖並與原始設計進行比較。列出差異並修復它們」* |

41| **解決根本原因,而不是症狀** | *「構建失敗」* | *「構建失敗,出現此錯誤:\[粘貼錯誤]。修復它並驗證構建成功。解決根本原因,不要抑制錯誤」* |

42 45 

43檢查存在後,決定它對停止的限制有多嚴格:46Claude Code 中的大多數功能都有這兩種形式:

44 47 

45* **在一個提示中**:要求 Claude 運行檢查並在同一消息中迭代,如上表所示。48| | 非確定性(由 Claude 決定) | 確定性(由 Claude Code 強制執行) |

46* **在整個會話中**:將檢查設置為 [`/goal` 條件](https://code.claude.com/docs/zh-TW/goal)。單獨的評估器在每次轉換後重新檢查它,Claude 繼續工作直到目標解決。如果 Claude 停滯,Claude Code 最終會停止運行,目標仍然設置 — 請參閱 [/goal 評估如何運作](https://code.claude.com/docs/zh-TW/goal.md#how-evaluation-works)。49| :- | :- | :- |

47* **作為確定性門**:[Stop hook](https://code.claude.com/docs/zh-TW/hooks.md#stop) 將您的檢查作為腳本運行,並阻止轉換結束直到它通過。[Stop input](https://code.claude.com/docs/zh-TW/hooks.md#stop-input) 涵蓋連續阻止的上限。50| 要做什麼 | 您的提示詞、`CLAUDE.md`、Claude 自行選用的 skill | Hook,以及只有您能啟動的 skill |

48* **由第二意見**:[驗證子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)或[動態工作流](https://code.claude.com/docs/zh-TW/workflows.md)檢查自己的發現,有一個新鮮的模型嘗試反駁結果,所以做工作的代理不是給它評分的那個。51| 可以觸及什麼 | 自動模式的分類器 | 拒絕規則、[嚴格模式](https://code.claude.com/docs/zh-TW/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode)下的沙箱、受管設定 |

52| 何時算完成 | 要求提供證據、`/goal`、`/code-review` | 測試、型別檢查、`Stop` hook、CI |

53| 花費多少 | Effort 等級、Claude 自己的步調 | 搭配 `-p` 使用的 `--max-turns` 或 [`--max-budget-usd`](https://code.claude.com/docs/zh-TW/cli-reference)、您設定的[支出上限](https://code.claude.com/docs/zh-TW/costs.md) |

54| 誰有最終決定權 | Claude 對其所做工作的摘要 | 分支保護、核准合併的人 |

49 55 

50每一步都用設置換取關注。提示版本適用於今天的任何任務。`/goal` 和 Stop hook 版本是讓無人值守運行正確完成而無需您的版本。56大多數時候,您會希望由 Claude 來決定。幾乎每項準則都有例外,而目前的模型很擅長閱讀眼前的程式碼,並判斷某項準則是否適用於當下情況。面對實際的程式碼,Claude 通常比您事先寫好的規則更適合做出判斷。

51 57 

52讓 Claude 展示證據而不是聲稱成功:測試輸出、它運行的命令及其返回的內容,或結果的截圖。審查證據比自己重新運行驗證要快得多,並且它適用於您沒有觀看的會話。58確定性的方式適用於您希望確保某些事情*一定*發生(或一定不發生)的情況,無論模型如何決定。這不一定是什麼重大的事。自動模式已經會[封鎖重大的事情](https://code.claude.com/docs/zh-TW/permission-modes.md#what-the-classifier-blocks-by-default),例如正式環境部署或強制推送覆蓋他人的工作。它通常是*您的*專案特有的事情,而且可以要多小眾就多小眾:

53 59 

54***60* 絕對不要編輯 `src/gen/` 中產生的用戶端

61* 建立檔案後一律執行授權標頭指令碼

55 62 

56## 先探索,然後規劃,然後編碼63您可以將上述任一項寫成 `CLAUDE.md` 或提示詞中的一行,而 Claude 幾乎每次都會遵循。但無論您的措辭多麼強烈,Claude 是否在某個回合遵循那一行,仍然是由 Claude 決定。

57 64 

58> [!TIP]65> [!TIP]

59>66>

60> 將研究和規劃與實施分開,以避免解決錯誤的問題。67> 如果您不斷為 `CLAUDE.md` 中的某一行加強語氣,而 Claude 仍然漏掉它,這表示那一行應該改成 hook。反之亦然:如果您為只是偏好的事情設了 hook,請刪除它們,讓 Claude 自行決定。

61 68 

62讓 Claude 直接跳到編碼可能會產生解決錯誤問題的代碼。使用 [Plan Mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 將探索與執行分開。69## 告訴 Claude 它看不到的資訊

63 70 

64推薦的工作流程有四個階段:71> [!TIP]

72>

73> 只寫下 Claude 無法透過閱讀儲存庫找到的內容,或是它原本必須在每個工作階段花時間重新發現的內容。

65 74 

66**1. 探索**75Claude 在每項任務開始時都會閱讀您的程式碼,而目前的模型在這方面*非常*擅長。它們會找出您的檔案配置、慣例、測試框架,以及現有元件的建構方式,通常比您解釋得還快。這意味著您可能想為它寫下的大部分內容,Claude 其實都已經知道了。

67 76 

68按 `Shift+Tab` 進入 Plan Mode,直到狀態欄顯示 `⏸ plan mode on`,或使用 `claude --permission-mode plan` 啟動工作階段。Claude 讀取文件並回答問題,不進行任何更改。77它找不到的是從來不在儲存庫中的資訊:

69 78 

70```txt title="claude (plan mode)" wrap theme={null}79* 您的團隊在會議中做出的決定

71read /src/auth and understand how we handle sessions and login.80* 只存在於某個人腦中的部署流程

72also look at how we manage environment variables for secrets.81* 整合測試需要的環境變數

73```

74 82 

75**2. 規劃**83還有一些資訊*確實*在儲存庫中,但需要花幾分鐘挖掘才能找到,而 Claude 必須在每個工作階段開始時重新挖掘一次。

76 84 

77要求 Claude 創建詳細的實施計劃。85在為 Claude 寫下任何內容之前,一個很好的測試方式是:

78 86 

79```txt title="claude (plan mode)" wrap theme={null}871. 它能透過閱讀程式碼找到這個資訊嗎?

80I want to add Google OAuth. What files need to change?882. 它實際上會去找嗎?

81What's the session flow? Create a plan.

82```

83 89 

84按 `Ctrl+G` 在文本編輯器中打開計劃進行直接編輯,然後 Claude 再繼續。90如果兩者的答案都是肯定的,就不用寫。

85 91 

86**3. 實施**92### 撰寫具體的提示詞

87 93 

88通過批准計劃或按 `Shift+Tab` 切換出 Plan Mode,然後讓 Claude 編碼,根據其計劃進行驗證。94具體的提示詞之所以有幫助,也是同樣的道理,因為它給了 Claude 原本沒有的資訊。如果您一開始就指出檔案、描述症狀,並說明「修好」是什麼樣子,通常可以省下之後一輪的修正。

89 95 

90```txt title="claude" wrap theme={null}96在兩種合理做法之間的偏好也是如此:Claude 無法從程式碼中讀出這一點,所以如果您在意它選哪一種,請一開始就說明。

91implement the OAuth flow from your plan. write tests for the

92callback handler, run the test suite and fix any failures.

93```

94 97 

95**4. 提交**98| 與其說 | 不如試試 |

99| :- | :- |

100| *「修復登入錯誤」* | *「使用者回報工作階段逾時後登入失敗。檢查 src/auth/ 中的 token 重新整理,寫一個能重現問題的失敗測試,然後修復它」* |

101| *「新增日曆小工具」* | *「依照 HotDogWidget.php 的模式,打造一個可以選擇月份並在年份之間翻頁的日曆小工具。不要使用新的程式庫」* |

96 102 

97要求 Claude 使用描述性消息進行提交並創建 PR。103如果您手上已經有 Claude 需要的東西,請直接交給它,而不是描述它:

98 104 

99```txt title="claude" wrap theme={null}105* 檔案:輸入 `@` 和路徑,即可在訊息中[包含檔案內容](https://code.claude.com/docs/zh-TW/common-workflows.md#reference-files-and-directories)。

100commit with a descriptive message and open a PR106* 影像:將設計或錯誤的螢幕擷取畫面貼到提示詞中。

101```107* 命令輸出:從您的 shell 用 `cat error.log | claude -p "what's going on here"` 以管道傳入。

102 108 

103Plan Mode 很有用,但也增加了開銷。109像 `think step by step` 或 `be thorough` 這樣的詞句只是一般的提示詞文字,而不是關鍵字。控制 Claude 思考深度的主要方式是 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level),[變更模型和 effort](#change-the-model-and-effort) 中會說明。這類措辭仍然可以在 effort 設定範圍內稍微引導 Claude,但無法讓它超越該設定。

104 110 

105對於範圍明確且修復很小的任務(如修復拼寫錯誤、添加日誌行或重命名變量),直接要求 Claude 執行。111仍然有幫助的一句話是 `be ambitious`。Claude 傾向以保守的方式理解請求,並打造能滿足需求的最小成果,因為它看不出您期望的程度有多高。當您想要更完整的版本,包含處理邊界情況和自然延伸的功能時,請明確說出來:

106 112 

107當您對方法不確定、更改修改多個文件或您不熟悉被修改的代碼時,規劃最有用。如果您可以用一句話描述 diff,請跳過計劃。113```text theme={null}

114build the settings page from the mockup. be ambitious: empty and error states, the save flow wired up, keyboard navigation, not just the layout

115```

108 116 

109***117這是在告訴 Claude 範圍(只有您知道),而不是要它多努力思考。

110 118 

111## 在提示中提供具體的背景資訊119而當您是在探索而非修復特定問題時,像 `what would you improve in this file?` 這樣模糊的提示詞完全沒問題。您在過程中會需要多修正一些,這就是取捨。

112 120 

113> [!TIP]121### 先與 Claude 腦力激盪

114>

115> 您的指示越精確,需要的修正就越少。

116 122 

117Claude 可以推斷意圖,但無法讀心術。參考特定檔案、提及限制條件,並指出範例模式。123當您還不確定自己到底想要什麼時,不必在下提示詞之前就全部想清楚。改為請 Claude 採訪您:

118 124 

119| 策略 | 之前 | 之後 |125```text theme={null}

120| - | - | - |126I want to add rate limiting to the public API but haven't thought it through yet. Interview me until you could write the spec, then write it to SPEC.md.

121| **限定任務範圍。** 指定哪個檔案、什麼情境和測試偏好。 | *「為 foo.py 新增測試」* | *「為 foo.py 編寫測試,涵蓋使用者未登入的邊界情況。避免使用 mock。」* |127```

122| **指向來源。** 引導 Claude 查看可以回答問題的來源。 | *「為什麼 ExecutionFactory 有這麼奇怪的 API?」* | *「查看 ExecutionFactory 的 git 歷史記錄,並總結其 API 是如何演變的」* |

123| **參考現有模式。** 指向您程式碼庫中的模式。 | *「新增日曆小工具」* | *「查看首頁上現有小工具的實作方式以了解模式。HotDogWidget.php 是一個很好的例子。按照模式實作新的日曆小工具,讓使用者選擇月份並向前/向後分頁以選擇年份。從頭開始構建,除了程式碼庫中已使用的程式庫外,不使用其他程式庫。」* |

124| **描述症狀。** 提供症狀、可能的位置,以及「修復」的樣子。 | *「修復登入錯誤」* | *「使用者報告在工作階段逾時後登入失敗。檢查 src/auth/ 中的驗證流程,特別是權杖重新整理。編寫一個失敗的測試來重現問題,然後修復它」* |

125 128 

126模糊的提示在您進行探索且能夠進行過程修正時很有用。像 `「您會改進這個檔案的哪些地方?」` 這樣的提示可以發現您不會想到要詢問的事項。129Claude 會針對您尚未確定的部分提出選擇題:依使用者或依金鑰限制、超過限制的請求如何處理、哪些不在範圍內。它會持續提問,直到答案足以構成一份規格。

127 130 

128### 提供豐富的內容131`SPEC.md` 產生之後,開啟一個全新的工作階段來依據它進行建置,讓建置從乾淨的上下文和書面的完成定義開始。這也是您之後在[給 Claude 一個可執行的檢查](#give-claude-a-check-to-run)中要讓審查者參照的檔案。

129 132 

130> [!TIP]133### 保持 CLAUDE.md 簡短

131>

132> 使用 `@` 參考檔案、貼上螢幕擷取畫面/影像,或直接傳送資料。

133 134 

134您可以透過多種方式向 Claude 提供豐富的資料:135Claude Code 會在每個工作階段載入 [`CLAUDE.md`](https://code.claude.com/docs/zh-TW/memory),這意味著其中的每一行在*每項*任務中都會佔用 Claude 一點注意力,無論是否相關。這就是為什麼這個檔案最好只包含 Claude 無法從程式碼本身推斷出的內容:

135 136 

136* **使用 `@` 參考檔案**,而不是描述程式碼的位置。Claude 會在回應前讀取檔案。137* 如何在這個儲存庫中確認工作:確切的測試、型別檢查和 lint 命令,以及如何執行單一測試檔案

137* **直接貼上影像**。複製/貼上或拖放影像到提示中。138* 程式碼容易誤導的地方:到處都是但新程式碼不能仿效的舊模式,或看起來未使用但其實在用的目錄

138* **提供文件和 API 參考的 URL**。使用 `/permissions` 將常用網域加入允許清單。139* 不在儲存庫中的決定:團隊最終採用哪個錯誤輔助函式、部署如何運作、什麼需要遷移審查

139* **透過管道傳入資料**,執行 `cat error.log | claude -p "explain this error"` 來直接傳送檔案內容。140* 任何您已經修正過兩次的事情

140* **讓 Claude 自行取得所需內容**。告訴 Claude 使用 Bash 命令、MCP 工具或讀取檔案來自行提取背景資訊。

141 141 

142***142通過這項測試的 `CLAUDE.md` 會保持簡短:

143 143 

144## 設定你的環境144```markdown CLAUDE.md theme={null}

145# Commands

146- Install: pnpm install

147- Run one test file: pnpm vitest run path/to/file.test.ts

148- Typecheck: pnpm tsc --noEmit

145 149 

146幾個設定步驟可以讓 Claude Code 在所有工作階段中發揮更大的效能。如需完整概述擴充功能及何時使用各功能,請參閱[擴充 Claude Code](https://code.claude.com/docs/zh-TW/features-overview.md)。150# Conventions

151- Use the error helpers in src/lib/errors.ts, never throw raw strings

152- src/legacy/ is still live but don't copy its patterns into new code

147 153 

148### 撰寫有效的 CLAUDE.md154# Gotchas

155- Integration tests need DATABASE_URL set, see .env.example

156```

149 157 

150> [!TIP]158在工作階段中,執行 `/context` 以確認 Claude 已載入該檔案。

151>

152> 執行 `/init` 以根據你目前的專案結構產生入門 CLAUDE.md 檔案,然後隨著時間推移進行調整。

153 159 

154CLAUDE.md 是一個特殊檔案,Claude 在每次對話開始時都會讀取。包含 Bash 命令、程式碼風格和工作流程規則。這讓 Claude 擁有它無法從程式碼單獨推斷的持久性背景資訊。160請注意,型別檢查那一行只有命令。Claude 需要知道這個命令,才能在過程中檢查自己的工作。如果您還希望 Claude Code 在 Claude 完成前*強制*通過型別檢查,那是 [`Stop` hook](#enforce-the-check-with-a-stop-hook) 的工作。在這個檔案中寫 `Always typecheck before you finish` 這樣的一行,大多數時候有效,但不是每次都有效。

155 161 

156CLAUDE.md 檔案沒有必需的格式,但要保持簡短且易於人類閱讀。例如:162您不必從頭撰寫這個檔案:

157 163 

158```markdown CLAUDE.md theme={null}164* `/init` 會根據您的程式碼庫產生一個初始版本。之後的工作主要是刪除行數。[記憶指南](https://code.claude.com/docs/zh-TW/memory.md#write-effective-instructions)建議保持在 200 行以下。

159# 程式碼風格165* `/doctor` 會針對 Claude [已經能從程式碼推斷出](https://code.claude.com/docs/zh-TW/memory.md#my-claude-md-is-too-large)的內容建議刪除。

160- 使用 ES modules (import/export) 語法,而不是 CommonJS (require)166* `/doctor prompt-audit` 會標記為舊模型撰寫的指令、指向已不存在之檔案的指令,或[彼此矛盾](https://code.claude.com/docs/zh-TW/memory.md#audit-your-instruction-files)的指令。

161- 盡可能解構匯入 (例如 import { foo } from 'bar')

162 167 

163# 工作流程168您的個人偏好應放在 `CLAUDE.local.md` 而非 `CLAUDE.md`,並將該檔案加入 `.gitignore`,讓它不會進入儲存庫。

164- 完成一系列程式碼變更後,務必進行型別檢查

165- 優先執行單一測試,而不是整個測試套件,以提高效能

166```

167 169 

168執行 `/context` 以確認 Claude 已載入該檔案。CLAUDE.md 在每個工作階段都會被載入,所以只包含廣泛適用的內容。對於只有在某些時候相關的領域知識或工作流程,請改用[技能](https://code.claude.com/docs/zh-TW/skills.md)。Claude 會按需載入它們,而不會讓每次對話都變得臃腫。170> [!NOTE]

171>

172> 如果 Claude 一直忽略*確實*寫在 `CLAUDE.md` 中的某一行,加上 IMPORTANT 大概無法解決問題。要嘛是檔案變得太長導致那一行被淹沒,要嘛那一行是不容例外的規則,這種情況下它應該放在 [hook](#enforce-the-rules-that-cant-have-exceptions) 中。

169 173 

170保持簡潔。對於每一行,問自己:*「移除這一行會導致 Claude 犯錯嗎?」* 如果不會,就刪除它。臃腫的 CLAUDE.md 檔案會導致 Claude 忽略你的實際指示!174### 將規則限定在程式碼庫的某個部分

171 175 

172| ✅ 包含 | ❌ 排除 |176如果某條規則只在程式碼庫的某個部分有意義,請將它放在 [`.claude/rules/`](https://code.claude.com/docs/zh-TW/memory#path-specific-rules) 中並加上 `paths:` 篩選器,讓它只在 Claude 實際於該處工作時才載入。例如,這個 `.claude/rules/api.md` 會在處理 `src/api/` 下的 TypeScript 檔案時載入:

173| - | - |

174| Claude 無法猜測的 Bash 命令 | Claude 可以透過閱讀程式碼推斷的任何內容 |

175| 與預設值不同的程式碼風格規則 | Claude 已經知道的標準語言慣例 |

176| 測試指示和偏好的測試執行器 | 詳細的 API 文件(改為連結到文件) |

177| 儲存庫禮儀(分支命名、PR 慣例) | 經常變更的資訊 |

178| 專案特定的架構決策 | 冗長的解釋或教學 |

179| 開發人員環境怪癖(必需的環境變數) | 檔案逐一描述程式碼庫 |

180| 常見陷阱或非顯而易見的行為 | 自明的做法,如「編寫乾淨的程式碼」 |

181 177 

182如果 Claude 儘管有規則反對仍持續做某件事,該檔案可能太長,規則被遺漏了。如果 Claude 詢問你在 CLAUDE.md 中已回答的問題,措辭可能不明確。將 CLAUDE.md 視為程式碼:當事情出錯時檢查它,定期修剪它,並透過觀察 Claude 的行為是否實際改變來測試變更。對於簽入的 CLAUDE.md,執行[`/doctor`](https://code.claude.com/docs/zh-TW/commands#all-commands),Claude 會建議刪除它可以從程式碼庫衍生的內容。178```markdown .claude/rules/api.md theme={null}

179---

180paths:

181 - "src/api/**/*.ts"

182---

183- Validate request bodies with the zod schemas in src/api/schemas/, don't hand-roll checks

184- Every new endpoint needs an entry in openapi.yaml, CI fails without it

185```

183 186 

184如果 Claude 持續跳過一項指示,請在該行單獨添加強調,例如「重要」。如果你強調許多行,沒有一行會突出。將 CLAUDE.md 簽入 git,以便你的團隊可以貢獻。該檔案的價值會隨著時間推移而複合增長。187### 將團隊流程放在 skill 中

185 188 

186CLAUDE.md 檔案可以使用 `@path/to/import` 語法匯入其他檔案。如需匯入規則和 CLAUDE.md 檔案可以存放的位置,請參閱 [CLAUDE.md 檔案](https://code.claude.com/docs/zh-TW/memory.md#claude-md-files)。189能力更強的模型懂得更多工程知識,但它不知道*您的*團隊如何進行發布、您的事件處理手冊寫了什麼,或您希望 API 文件如何撰寫。這類知識應放在 [skill](https://code.claude.com/docs/zh-TW/skills.md) 中:一個儲存在 `.claude/skills/<name>/SKILL.md` 的流程或團隊知識。

187 190 

188### 設定權限191對於這類內容,skill 佔用的上下文也比 `CLAUDE.md` 少。對於 Claude 可以自行啟動的 skill,它在每個工作階段都會看到名稱和描述,但只有在任務需要時才會[讀取完整檔案](https://code.claude.com/docs/zh-TW/skills.md#skill-content-lifecycle)。放在 skill 中的冗長發布流程,不會像放在 `CLAUDE.md` 中那樣拖累您無關的錯誤修復。

189 192 

190> [!TIP]193> [!NOTE]

191>194>

192> 若要減少提示而不放棄控制,請使用 `/permissions` 預先核准你信任的工具,並使用 `/sandbox` 讓沙箱命令無需詢問即可執行。當你想自己核准編輯和命令時,切換到手動模式。195> `CLAUDE.md` 的原則同樣適用於 skill:只寫下 Claude 無法自行找到的內容。

193 196 

194在 Claude Code v2.1.283 或更新版本中,自動模式是互動式終端和 VS Code 工作階段的[內建起始權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode):一個單獨的分類器模型會檢查大多數操作,而不是你,並且只會阻止看起來有風險的操作,例如範圍提升、未知基礎設施或敵對內容驅動的操作。在較早的版本中,自動模式只在 Pro、Max 和 Team 方案上才是互動式終端和 VS Code 工作階段的內建起始權限模式。197對於有副作用的工作流程,例如實際進行發布,請加上 `disable-model-invocation: true`。這樣 Claude 就[無法自行啟動該 skill](https://code.claude.com/docs/zh-TW/skills.md#control-who-invokes-a-skill),只有在您自己輸入 `/release` 時才會執行。儲存為 `.claude/skills/release/SKILL.md` 時,它可能看起來像這樣:

195 198 

196在手動模式中,Claude Code 會在可能修改你的系統的操作前詢問:檔案寫入、Bash 命令、MCP 工具。這很安全但很繁瑣。在第十次核准後,你就是在點擊而不是檢查。兩個工具在手動模式中減少了這些中斷,也適用於自動模式:199```markdown .claude/skills/release/SKILL.md theme={null}

200---

201name: release

202description: Cut a new release. Bumps the version, writes the changelog entry, tags it and pushes the tag so CI can publish.

203disable-model-invocation: true

204---

2051. Make sure you're on main with a clean tree. If not, stop and ask.

2062. Run `pnpm changeset version` and commit the result.

2073. Summarize the PRs merged since the last tag into CHANGELOG.md, one line each, user-facing changes only.

2084. Tag `v<new version>` and push the tag. CI publishes from there, never publish from your machine.

209```

197 210 

198* **權限允許清單**:允許你知道是安全的特定工具,如 `npm run lint` 或 `git commit`211### 連接 Claude 需要的工具

199* **沙箱**:啟用作業系統級隔離,限制檔案系統和網路存取,讓 Claude 在定義的邊界內更自由地工作

200 212 

201深入瞭解[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)、[權限規則](https://code.claude.com/docs/zh-TW/permissions.md)和[沙箱](https://code.claude.com/docs/zh-TW/sandboxing.md)。213Claude 看不到的部分資訊完全存在於另一個系統中,例如您的議題追蹤器或錯誤儀表板。如果該系統有 CLI,那通常是最簡單的接入方式。例如,安裝並登入 `gh` 後,Claude 就能開啟 pull request 並閱讀審查留言,完全不需要您解釋。對於它沒見過的 CLI,讓它參考 `--help` 就足夠了。

202 214 

203### 使用 CLI 工具215對於沒有 CLI 的系統,可以使用 [MCP](https://code.claude.com/docs/zh-TW/mcp.md)。您可以從 shell 新增伺服器:

204 216 

205> [!TIP]217```bash theme={null}

206>218claude mcp add --transport http notion https://mcp.notion.com/mcp

207> 告訴 Claude Code 在與外部服務互動時使用 CLI 工具,如 `gh`、`aws`、`gcloud` 和 `sentry-cli`。219```

220 

221之後該伺服器會出現在工作階段內的 `/mcp` 下。已連接的伺服器即使在您沒有使用時,也會將它們的工具名稱和指令加入上下文,因此值得在那裡[關閉您不需要的伺服器](https://code.claude.com/docs/zh-TW/mcp.md#disable-a-server-without-removing-it)。

222 

223如果您使用的是有型別的語言,[程式碼智慧外掛](https://code.claude.com/docs/zh-TW/plugins/code-intelligence.md)能讓 Claude 直接跳到定義處,而不必翻閱許多檔案來尋找。

208 224 

209CLI 工具是與外部服務互動最具背景資訊效率的方式。如果你使用 GitHub,請安裝 `gh` CLI。Claude 知道如何使用它來建立議題、開啟提取請求和閱讀評論。沒有 `gh`,Claude 仍然可以使用 GitHub API,但未經驗證的請求經常會達到速率限制。225## 給 Claude 一個可執行的檢查

210 226 

211Claude 也很擅長學習它還不知道的 CLI 工具。嘗試像 `Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.` 這樣的提示。227Claude 在工作看起來完成時就會停止。如果它沒有可以執行的東西來告訴它工作是否*真的*完成,那麼「看起來完成」就是它唯一的依據。實際上這會讓您成為測試套件,每個錯誤都會一直留在那裡,直到您碰巧注意到為止。

212 228 

213### 連接 MCP 伺服器229如果您給它一個會回傳通過或失敗的東西,Claude 就能自己完成這個迴圈。它會進行變更、執行檢查,如果有東西壞了,它會閱讀輸出並加以修復,然後再次執行檢查。

214 230 

215> [!TIP]231> [!TIP]

216>232>

217> 執行 `claude mcp add` 並提供伺服器名稱和 URL 或命令,以連接外部工具,如 Notion、Figma 或你的資料庫。例如:`claude mcp add --transport http notion https://mcp.notion.com/mcp`。233> 給 Claude 一個它可以執行且會回傳通過或失敗的東西。一旦有了這個,它就能自行持續進行,您也不必在旁盯著。

218 234 

219使用 [MCP 伺服器](https://code.claude.com/docs/zh-TW/mcp.md),你可以要求 Claude 從議題追蹤器實現功能、查詢資料庫、分析監控資料、整合來自 Figma 的設計,以及自動化工作流程。235只要 Claude 能讀取結果,檢查幾乎可以是任何東西:

220 236 

221### 設定 hooks237* 一個測試檔案

238* 建置的退出碼

239* Linter

240* 將輸出與固定測試資料進行差異比對的指令碼

241* 與設計稿並排的[瀏覽器螢幕擷取畫面](https://code.claude.com/docs/zh-TW/chrome.md)

222 242 

223> [!TIP]243如果您的儲存庫已經有其中之一,那麼 `CLAUDE.md` 中最有用的一行就是執行它的命令。

224>

225> 對於必須每次都發生且沒有例外的操作,使用 hooks。

226 244 

227[Hooks](https://code.claude.com/docs/zh-TW/hooks-guide.md) 在 Claude 工作流程中的特定點自動執行指令碼。與作為建議的 CLAUDE.md 指示不同,hooks 是確定性的,並保證操作會發生。245檢查要多嚴格由您決定。選項從由 Claude 自行決定,一路到由 Claude Code 強制執行:

228 246 

229Claude 可以為你編寫 hooks。嘗試像 *「編寫一個在每次檔案編輯後執行 eslint 的 hook」* 或 *「編寫一個阻止寫入遷移資料夾的 hook。」* 這樣的提示。直接編輯 `.claude/settings.json` 以手動設定 hooks,並執行 `/hooks` 以瀏覽已設定的內容。247* 在提示詞中:`run the auth tests after, and keep going until they pass`。由 Claude 自行決定何時滿意。這適用於任何任務,今天就能用,不需要任何設定。

248* 作為目標:[`/goal all tests in tests/auth pass and lint is clean`](https://code.claude.com/docs/zh-TW/goal) 會設定一個條件,由另一個模型在每個回合後根據對話進行檢查,Claude 會持續工作直到條件達成。您在工作階段中自己很少需要這個。它對長時間的背景執行很重要,因為 Claude 有時會在仍有未完成項目時以進度摘要結束回合,而目標會把它送回去繼續工作。

249* 作為 Stop hook:[`Stop` hook](https://code.claude.com/docs/zh-TW/hooks#stop) 會在 Claude 嘗試結束回合時執行您的指令碼,如果指令碼以退出碼 2 結束,就會讓 Claude 回去繼續工作。這是由 Claude Code(執行框架)強制執行的,因此在型別檢查通過或達到[封鎖上限](https://code.claude.com/docs/zh-TW/hooks.md#stop-input)之前,回合不會結束。[下方有範例](#enforce-the-check-with-a-stop-hook)。

250* 由沒有撰寫程式碼的人審查:在終端機中,[`/code-review`](https://code.claude.com/docs/zh-TW/code-review-local) 會在一個從未看過您對話的全新 subagent 中審查差異。它不會受到產生程式碼時的推理所影響。

230 251 

231### 建立技能252無論使用哪個選項,都請向 Claude 要求*證據*:它執行的命令及其輸出,或螢幕擷取畫面。單單一句「所有測試都通過」能告訴您的資訊很少,而閱讀輸出比自己重新執行檢查更快。對於您沒有在旁觀看的工作階段,這也是您唯一擁有的證據。

232 253 

233> [!TIP]254> [!TIP]

234>255>

235> 在 `.claude/skills/` 中建立 `SKILL.md` 檔案,以提供 Claude 領域知識和可重複使用的工作流程。256> Claude 說它完成後,您也可以在工作階段中執行 [`/verify`](https://code.claude.com/docs/zh-TW/skills#run-and-verify-your-app),讓 Claude 建置並執行應用程式,然後查看結果。這能抓到測試和型別檢查會漏掉的問題。

236 257 

237[技能](https://code.claude.com/docs/zh-TW/skills.md)使用特定於你的專案、團隊或領域的資訊擴充 Claude 的知識。Claude 在相關時自動應用它們,或者你可以使用 `/skill-name` 直接呼叫它們。258### 依據您的規格進行審查

238 259 

239透過在 `.claude/skills/` 中添加包含 `SKILL.md` 的目錄來建立技能:260如果您希望審查是依據您的計畫檢查工作,而不是廣泛地尋找錯誤,請自己撰寫審查提示詞:

240 261 

241```markdown .claude/skills/api-conventions/SKILL.md theme={null}262```text theme={null}

242name: api-conventions263use a subagent to review the rate limiter diff against SPEC.md, check every requirement is implemented and the listed edge cases have tests, report gaps that affect correctness and skip style

243description: REST API design conventions for our services

244# API 慣例

245- 為 URL 路徑使用 kebab-case

246- 為 JSON 屬性使用 camelCase

247- 始終為清單端點包含分頁

248- 在 URL 路徑中版本化 API (/v1/, /v2/)

249```264```

250 265 

251技能也可以定義你直接呼叫的可重複工作流程:266> [!NOTE]

252 267>

253```markdown .claude/skills/fix-issue/SKILL.md theme={null}268> 不要刪掉提示詞中的 `skip style` 部分。被要求找出問題的審查者一定會找到*某些東西*。如果您修正每一項發現,最後會得到多餘的抽象層,以及針對不可能發生之情況的測試。

254name: fix-issue269 

255description: Fix a GitHub issue270### 使用 Stop hook 強制執行檢查

256disable-model-invocation: true271 

257分析並修復 GitHub 議題:$ARGUMENTS。272型別檢查規則的 `Stop` hook 版本只需要在 `.claude/settings.json` 中寫幾行。退出碼 2 會阻止停止。命令輸出到 stderr 的任何內容都會回傳給 Claude,作為它還不能完成的原因,這就是為什麼要將編譯器輸出重新導向到那裡:

258 273 

2591. 使用 `gh issue view` 取得議題詳細資訊274```json .claude/settings.json theme={null}

2602. 理解議題中描述的問題275{

2613. 搜尋程式碼庫以尋找相關檔案276 "hooks": {

2624. 實現必要的變更以修復議題277 "Stop": [

2635. 編寫並執行測試以驗證修復278 {

2646. 確保程式碼通過 linting 和型別檢查279 "hooks": [

2657. 建立描述性提交訊息280 { "type": "command", "command": "pnpm tsc --noEmit 1>&2 || exit 2" }

2668. 推送並建立 PR281 ]

282 }

283 ]

284 }

285}

267```286```

268 287 

269執行 `/fix-issue 1234` 以呼叫它。對於具有副作用且你想手動觸發的工作流程,使用 `disable-model-invocation: true`。288若要看看它的效果,請要求 Claude 做一個會破壞型別的變更:它不會直接完成,而是收到編譯器錯誤並持續工作,直到 `tsc` 通過。如果 hook [連續封鎖八次停止](https://code.claude.com/docs/zh-TW/hooks.md#stop-input)且期間沒有任何工具呼叫,Claude Code 會覆寫下一次封鎖並結束回合。若要提高上限,請設定 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](https://code.claude.com/docs/zh-TW/env-vars)。

270 289 

271### 建立自訂子代理290## 強制執行不容例外的規則

272 291 

273> [!TIP]292> [!TIP]

274>293>

275> 在 `.claude/agents/` 中定義專門的助手,Claude 可以委派給它們以執行隔離的任務。294> 如果某件事每次都必須發生,就把它做成 hook、拒絕規則或受管設定。`CLAUDE.md` 是用來放準則的,而 Claude 可以決定某項準則不適用。

276 295 

277[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)在自己的背景資訊中執行,具有自己的一組允許工具。它們對於讀取許多檔案或需要專門關注而不會讓主要對話變得混亂的任務很有用。296以您現在可能寫在 `CLAUDE.md` 中的三條規則為例:`Never read .env`、`Always run the formatter after editing`、`Don't touch the migrations folder`。Claude 幾乎每次都會遵循這些規則。對於那些「幾乎」還不夠好的規則,請將它們從 `CLAUDE.md` 移到由 Claude Code(執行框架)自行套用的設定中。從此以後,結果就不再取決於模型記得什麼或決定什麼。

278 297 

279```markdown .claude/agents/security-reviewer.md theme={null}298### 使用 hook 強制執行步驟

280name: security-reviewer299 

281description: Reviews code for security vulnerabilities300[Hook](https://code.claude.com/docs/zh-TW/hooks-guide.md) 會在 Claude 迴圈中的固定時間點執行您的某個東西:工具呼叫之前或之後、Claude 嘗試停止時、工作階段開始時等等。這個東西可以是:

282tools: Read, Grep, Glob, Bash301 

283model: opus302* Shell 命令(一般情況)

284你是一名資深安全工程師。檢查程式碼以查找:303* 對 HTTP 端點發送 POST

285- 注入漏洞 (SQL、XSS、命令注入)304* 對您某個 MCP 伺服器的工具呼叫

286- 驗證和授權缺陷305* [`prompt` 或 `agent` hook](https://code.claude.com/docs/zh-TW/hooks#hook-handler-fields),讓模型來決定

287- 程式碼中的祕密或認證306 

288- 不安全的資料處理307`prompt` 或 `agent` hook 是請*另一個模型*做決定,所以它也不是確定性的。若要真正強制執行,請使用 `command` 或 `http` hook,如果在 hook 本身當機或逾時時也應該阻止該動作,請加上 [`onFailure: "block"`](https://code.claude.com/docs/zh-TW/hooks#block-the-action-when-a-hook-fails)。例如,對於掃描提交中機密資訊的 hook,在掃描器故障時,您會寧願阻止提交,而不是讓它未經掃描就通過。

308 

309以下是以 `PostToolUse` hook 實作的格式化工具規則。它會在每次 `Edit` 或 `Write` 後執行,Claude 是否記得這條規則已經不重要了,因為執行它的不是 Claude:

289 310 

290提供特定的行參考和建議的修復。311```json .claude/settings.json theme={null}

312{

313 "hooks": {

314 "PostToolUse": [

315 {

316 "matcher": "Edit|Write",

317 "hooks": [

318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }

319 ]

320 }

321 ]

322 }

323}

291```324```

292 325 

293明確告訴 Claude 使用子代理:*「使用子代理檢查此程式碼是否存在安全問題。」*326若要檢查這個 hook,請要求 Claude 在 Prettier 會格式化的檔案中加入一行縮排錯誤的程式碼。儲存後的檔案會以修正後的縮排呈現。

294 327 

295### 安裝外掛程式328遷移規則則變成一個 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/hooks-guide#block-edits-to-protected-files),對 `migrations/` 下的任何路徑以退出碼 2 結束。您不必自己撰寫:`write a hook that blocks edits to the migrations folder` 就能當作提示詞使用,而 `/hooks` 會顯示結果。不過不要過度使用:hook 是給*零*例外的規則用的,而 `Prefer named exports` 有很多例外,所以它應該留在 `CLAUDE.md` 中。

296 329 

297> [!TIP]330### 使用權限規則和沙箱限制存取

298>

299> 執行 `/plugin` 以瀏覽市場。外掛程式無需設定即可添加技能、工具和整合。

300 331 

301[外掛程式](https://code.claude.com/docs/zh-TW/plugins/overview.md)將技能、hooks、子代理和 MCP 伺服器從社群和 Anthropic 捆綁到單個可安裝單位中。如果你使用型別語言,請安裝[程式碼智慧外掛程式](https://code.claude.com/docs/zh-TW/plugins/code-intelligence.md),以提供 Claude 精確的符號導航和編輯後的自動錯誤偵測。332[權限規則](https://code.claude.com/docs/zh-TW/permissions.md)決定 Claude 可以執行、讀取和擷取什麼。`deny` 規則在每種權限模式中都有效,包括自動模式和 `bypassPermissions`,這正是 `.env` 規則應該放在那裡的原因:

302 333 

303如需有關在技能、子代理、hooks 和 MCP 之間選擇的指導,請參閱[擴充 Claude Code](https://code.claude.com/docs/zh-TW/features-overview.md#match-features-to-your-goal)。334```json .claude/settings.json theme={null}

335{

336 "permissions": {

337 "allow": ["Bash(pnpm tsc --noEmit)"],

338 "ask": ["Bash(git push *)"],

339 "deny": ["Read(./.env)", "Read(./.env.local)", "Read(./secrets/**)"]

340 }

341}

342```

304 343 

305***344儲存這個設定後,詢問 Claude `.env` 的內容會失敗,無論是透過 `Read` 工具還是透過 `cat .env` 都一樣。

306 345 

307## 有效溝通346規則比對的是工具呼叫,而不是意圖,所以值得了解它的邊界在哪裡:

308 347 

309詢問 Claude 您會詢問另一位工程師的問題,對於較大的功能,讓 Claude 採訪您並在開始實施前撰寫規格。348* `Read` 規則*確實*會攔截 `cat .env`,因為 Claude Code 能辨識[常見的檔案讀取命令](https://code.claude.com/docs/zh-TW/permissions.md#read-and-edit)。

349* 它不會攔截開啟該檔案的指令碼。

350* 針對某個網域的 `WebFetch` 拒絕規則,對於以 `curl` 存取同一網域毫無作用,除非沙箱已開啟。

310 351 

311### 詢問代碼庫問題352若要在作業系統層級限制檔案系統或網路存取,請在工作階段中使用 `/sandbox` 開啟[沙箱](https://code.claude.com/docs/zh-TW/sandboxing.md)。它會在 macOS、Linux 和 WSL2 上限制 Claude 的 shell 命令,而且也會[套用您的 `Read` 拒絕規則和 `WebFetch(domain:...)` 規則](https://code.claude.com/docs/zh-TW/sandboxing#permission-rules),因此對於任何與安全相關的事項,您會希望兩者都使用。

312 353 

313> [!TIP]354預設情況下,Claude 仍然可以要求在沙箱外重試被封鎖的命令,而該請求會經過一般的權限流程。`/sandbox` **Overrides** 分頁中的[嚴格沙箱模式](https://code.claude.com/docs/zh-TW/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode)會關閉這種重試。

355 

356> [!WARNING]

314>357>

315> 詢問 Claude 您會問資深工程師的問題。358> 自動模式是由分類器模型判斷每個動作,而不是硬性規則。它很擅長這件事,但就像任何判斷一樣,它也可能出錯。您也可以調整它認定為有風險的內容,而您的組織可以完全關閉它,所以您的「絕對不行」規則應該放在拒絕規則或 hook 中。

359 

360### 選擇規則適用的對象

316 361 

317當加入新代碼庫時,使用 Claude Code 進行學習和探索。您可以詢問 Claude 與詢問另一位工程師相同類型的問題:362規則放在哪裡,決定了它適用於誰:

318 363 

319* 日誌記錄如何工作?364* `.claude/settings.local.json` 和 `~/.claude/settings.json` 只屬於您自己。當您對某個命令選擇 **Yes, and don't ask again** 時,Claude Code 會將該規則儲存到本機檔案。

320* 我如何建立新的 API 端點?365* `.claude/settings.json` 及其中的 hook 屬於儲存庫。提交之後,它們會適用於在該儲存庫中工作的每個人。其中的拒絕規則會立即生效。其中的 `allow` 規則會等到每個人接受該資料夾的[信任對話框](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)後才生效,而[工作區信任](https://code.claude.com/docs/zh-TW/hooks.md#workspace-trust)也決定了其中的 hook 何時開始在他們的電腦上執行。

321* `foo.rs` 第 134 行的 `async move { ... }` 做什麼?366* [受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)屬於組織。它們來自管理主控台、MDM 或 `managed-settings.json` 檔案,任何個人設定檔都無法覆寫它們,這使得它們成為安全團隊政策的唯一存放處。如果您是負責設定它們的人,請參閱[為您的組織設定 Claude Code](https://code.claude.com/docs/zh-TW/admin-setup.md)。

322* `CustomerOnboardingFlowImpl` 處理哪些邊界情況?

323* 為什麼此代碼在第 333 行呼叫 `foo()` 而不是 `bar()`?

324 367 

325以這種方式使用 Claude Code 是一個有效的入職工作流程,改進了入職時間並減少了對其他工程師的負擔。無需特殊提示:直接提出問題。368無論範圍為何,都請讓強制執行的項目保持精簡。每個 hook 和拒絕規則偶爾都會在不該觸發時觸發,而且每一項都需要有人維護。如果您發現自己累積了四十個,其中大多數可能都只是 Claude 本可以自行權衡的偏好。

326 369 

327### 讓 Claude 採訪您370## 變更預設值

328 371 

329> [!TIP]372> [!TIP]

330>373>

331> 對於較大的功能,讓 Claude 先採訪您。從最小的提示開始,並要求 Claude 使用 `AskUserQuestion` 工具採訪您。374> 預設值已經夠好,可以維持不動,直到某項任務花費的時間、token 或中斷超出應有的程度為止。發生這種情況時,請在工作階段中執行 `/usage` 查看花費去了哪裡。

332 375 

333Claude 會詢問您可能還沒有考慮的事情,包括技術實施、UI/UX、邊界情況和權衡。將 `[brief description]` 替換為您的功能,然後再傳送提示。376新的工作階段已經替您做了幾項決定:

334 377 

335```text wrap theme={null}378* 互動式終端機和 VS Code 工作階段以自動模式啟動。

336I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.379* 在大多數方案和供應商上,它會執行[中等 effort 的 Claude Opus 5.5](https://code.claude.com/docs/zh-TW/model-config.md#default-model-setting)。

380* 當它認為有理由時,會將工作委派給 subagent。

381* 它會在對話增長時進行壓縮。

337 382 

338Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.383大多數時候您根本不會想到這些。當某項任務的花費確實超出應有的程度時,原因通常就是這四項之一。

339 384 

340Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.385### 變更權限模式

341```

342 386 

343規格完成後,開始新會話以執行它。新會話具有完全專注於實施的乾淨 context,您有一個書面規格可供參考。387權限範圍的兩端都有代價:

344 388 

345最有用的規格是自包含的:它們命名涉及的檔案和介面、說明什麼超出範圍,並以端到端驗證步驟結束,證明該功能有效。花費時間使規格精確的回報遠大於花費時間觀看實施的回報。389* **手動模式**:您要親自核准每一次編輯和每一個非唯讀的命令。很安全,但到了第十個提示後,您就會開始不讀內容就核准,而且在您離開鍵盤時,一切都不會進展。

390* **`bypassPermissions`**:核准所有不在您的拒絕和詢問規則涵蓋範圍內的操作,這只在可拋棄的容器中才合理。

346 391 

347***392[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)介於兩者之間,也是互動式終端機和 VS Code 工作階段[啟動時](https://code.claude.com/docs/zh-TW/permission-modes.md#which-mode-a-session-starts-in)使用的模式。Claude 在工作時不會為例行核准而停下來,而另一個分類器模型會在動作執行前依照[固定順序](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)檢查它們。它專注於[您會希望有人出面阻止的事情](https://code.claude.com/docs/zh-TW/permission-modes.md#what-the-classifier-blocks-by-default):

348 393 

349## 管理您的工作階段394* `curl | bash`

395* 正式環境部署和遷移

396* 強制推送覆蓋他人的工作

397* 將敏感資料傳送到外部端點

398* 看起來是由 Claude 讀取的內容而非由您驅動的動作

350 399 

351對話是持久且可逆的。善加利用這一點!400當它確實封鎖了某個動作時,您會收到通知,而該動作會顯示在 `/permissions` 中的 **Recently denied** 下,您可以在那裡以手動核准的方式重試。在[連續封鎖三次](https://code.claude.com/docs/zh-TW/permission-modes.md#when-auto-mode-falls-back)(或總計二十次)之後,自動模式會暫停並改回詢問您。

352 401 

353### 及早且頻繁地修正方向402這些都不會取代您的確定性控制,因為它是在確定性控制*之後*執行的。拒絕和詢問規則以及 `PreToolUse` hook 會在分類器看到任何內容之前套用,因此拒絕規則在自動模式中的封鎖效果與在其他地方完全相同。沙箱仍然會限制[它所包覆的 shell 命令](https://code.claude.com/docs/zh-TW/sandboxing.md#what-runs-outside-the-sandbox)。

354 403 

355> [!TIP]404> [!NOTE]

356>405>

357> 一旦發現 Claude 偏離軌道,請立即修正。406> 您也可以在對話中說 `don't push until I've reviewed`,分類器會[將其視為封鎖訊號](https://code.claude.com/docs/zh-TW/permission-modes.md#boundaries-you-state-in-conversation)。但這仍然是由模型閱讀逐字稿,而這句話可能會在對話壓縮時遺失,所以任何重要的事項都應該放在拒絕規則中。

407 

408相反的問題是分類器一再阻止在您環境中屬於例行的操作。與其每次都手動核准,不如將它加入 `autoMode.allow`,或在[自動模式設定](https://code.claude.com/docs/zh-TW/auto-mode-config.md)中描述您信任的基礎設施。它使用的是一般英文而非模式比對,而 [`/auto-mode-setup`](https://code.claude.com/docs/zh-TW/auto-mode-config#generate-environment-entries) 可以根據您的專案和最近的工作階段為您草擬 `environment` 部分:

409 

410```json ~/.claude/settings.json theme={null}

411{

412 "autoMode": {

413 "environment": [

414 "$defaults",

415 "Source control: github.com/example-org and every repo under it",

416 "Trusted internal domains: *.internal.example.com"

417 ],

418 "allow": [

419 "$defaults",

420 "Deploying to the staging namespace is fine, it's isolated from production and resets nightly"

421 ]

422 }

423}

424```

358 425 

359最佳結果來自於緊密的回饋迴圈。雖然 Claude 有時能在第一次嘗試時完美解決問題,但快速修正通常能更快產生更好的解決方案。426> [!WARNING]

427>

428> 請在您設定的每個清單中保留 `"$defaults"`,因為如果沒有它,您的項目會*取代*該清單的內建規則,而不是新增到其中。對於 `environment` 和 `allow`,您會失去內建的上下文和例外,而沒有它的 `soft_deny` 清單則會移除針對強制推送和正式環境部署的內建封鎖。

429>

430> `autoMode` 區塊也必須放在 `~/.claude/settings.json` 中,而不是專案中,因為分類器會忽略專案設定中的 `autoMode`。

360 431 

361* **`Esc`**:使用 `Esc` 鍵在 Claude 執行中途停止。內容會被保留,因此您可以重新導向。432如果您希望在每次編輯和命令發生前都能看到它們,可以在工作階段中按 `Shift+Tab` 循環切換權限模式(包括手動模式),或從 shell 以 `claude --permission-mode manual` 啟動。而如果手動模式詢問得太頻繁,`/fewer-permission-prompts` 會掃描您最近的逐字稿,找出常見的唯讀 Bash 和 MCP 呼叫,並將它們加入 `.claude/settings.json` 中的允許清單。

362* **`Esc + Esc` 或 `/rewind`**:按兩次 `Esc` 或執行 `/rewind` 以開啟倒帶選單,並復原先前的對話和程式碼狀態,或從選定的訊息進行摘要。

363* **`"Undo that"`**:讓 Claude 復原其變更。

364* **`/clear`**:在不相關的任務之間重設內容。包含無關內容的長工作階段可能會降低效能。

365 433 

366如果您在一個工作階段中針對同一問題修正 Claude 超過兩次,內容會因失敗的方法而變得混亂。執行 `/clear` 並使用更具體的提示重新開始,該提示應納入您所學到的內容。具有更好提示的乾淨工作階段幾乎總是優於包含累積修正的長工作階段。434### 變更模型和 effort

367 435 

368### 積極管理內容436[Effort](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) 是控制 Claude 思考時間長短的主要方式,它取代了過去人們透過提示詞措辭所做的大部分事情。Claude Opus 5.5、Sonnet 5.5 和 Haiku 5.5 預設為 `medium`,這對於範圍明確的日常功能開發已經綽綽有餘。您會需要在工作階段中以 `/effort` 調整它的時機:

369 437 

370> [!TIP]438* 當做對與否取決於容易被忽略的情況時,用 `/effort high` 或 `/effort xhigh` 調高它。例如您沒寫過的程式碼中的錯誤、不穩定的測試,或是 Claude 必須找出舊結構所有讀取者的 schema 變更。這樣 Claude 會在回答之前檢查更多邊界情況並驗證更多工作,額外的時間和 token 就花在這裡。

371>439* 當您正在快速來回互動且無論如何都會審查每個結果時,用 `/effort low` 調低它:腦力激盪、初步草稿、跨幾個檔案的重新命名。Claude 會更快給您一個起點,而既然您在每一步都會引導,額外的深思熟慮除了讓您等待更久之外,不會有太大改變。

372> 在不相關的任務之間執行 `/clear` 以重設內容。440* 將 `max` 留給您希望 Claude 在沒有您的情況下努力解決的困難問題,例如尋找安全漏洞。在一般任務上它容易想太多,所以您會付出更多,得到的答案卻可能不比 `high` 更好。

441* 當只有下一則訊息需要時,例如在原本例行的工作中穿插一個棘手的問題,請在該提示詞中加入 [`ultrathink`](https://code.claude.com/docs/zh-TW/model-config#use-ultrathink-for-one-off-deep-reasoning),而不是變更設定。

373 442 

374Claude Code 會在您接近內容限制時自動壓縮對話歷史,這會保留重要的程式碼和決策,同時釋放空間。443至於模型本身,預設的 Opus 5.5 能妥善處理大多數程式撰寫工作,而 Sonnet 在例行工作上成本較低。[Claude Fable 5.1](https://code.claude.com/docs/zh-TW/model-config.md#work-with-fable) 需要您以 `/model fable` 明確選取,而 Haiku 很適合做簡單工作的 subagent。[模型設定](https://code.claude.com/docs/zh-TW/model-config.md)列出了各方案和供應商的完整清單。

375 444 

376在長工作階段期間,Claude 的內容視窗可能會填滿無關的對話、檔案內容和命令。這可能會降低效能,有時甚至會分散 Claude 的注意力。445### 了解 subagent 的成本

377 446 

378* 在任務之間頻繁使用 `/clear` 以完全重設內容視窗447Claude 會自行將工作委派給 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md):

379* 當自動壓縮觸發時,Claude 會摘要最重要的內容,包括程式碼模式、檔案狀態和關鍵決策

380* 為了獲得更多控制,執行 `/compact <instructions>`,例如 `/compact Focus on the API changes`

381* 若要只壓縮對話的一部分,使用 `Esc + Esc` 或 `/rewind`,選擇訊息檢查點,然後選擇**從此處摘要**或**摘要至此處**。第一個選項會壓縮該點之後的訊息,同時保留較早的內容;第二個選項會壓縮較早的訊息,同時保留最近的訊息完整。請參閱[倒帶選單的摘要選項](https://code.claude.com/docs/zh-TW/checkpointing.md#rewind-and-summarize)。

382* 在 CLAUDE.md 中使用 `"When compacting, always preserve the full list of modified files and any test commands"` 之類的指示來自訂壓縮行為,以確保關鍵內容在摘要後倖存

383* 對於不需要保留在內容中的問題,使用 [`/btw`](https://code.claude.com/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)。答案永遠不會進入對話歷史,因此您可以檢查詳細資訊而不會增加內容。

384 448 

385### 使用子代理進行調查449* 大範圍的程式碼庫搜尋會交給內建的 Explore agent。

450* 在分叉模式開啟時(預設),支線任務會被[分叉](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation)出去。

451* 它啟動的 subagent 預設在背景執行,因此您的主要對話可以持續進行。

386 452 

387> [!TIP]453您很少需要主動要求這些,但了解您得到什麼以及它的成本會有幫助。

388>

389> 使用 `"use subagents to investigate X"` 委派研究。它們在單獨的內容中進行探索,保持您的主要對話乾淨以供實施。

390 454 

391由於內容是您的基本限制,請使用子代理將研究保持在內容之外。當 Claude 研究程式碼庫時,它會讀取許多檔案,所有這些都會消耗您的內容。子代理在單獨的內容視窗中執行並報告摘要:455Subagent 在以下情況能帶來效益:

392 456 

393```text wrap theme={null}457* 同時執行獨立的工作片段,讓整個任務更快完成

394Use subagents to investigate how our authentication system handles token458* 將冗長的輸出(例如完整的測試執行或大範圍搜尋)排除在主要對話之外,否則它會在整個工作階段剩餘時間中一直跟著

395refresh, and whether we have any existing OAuth utilities I should reuse.459* 取得一個沒看過程式碼撰寫過程的審查者

396```460* 給予某項任務比主要工作階段更少的工具,例如只能讀取但不能編輯的審查者

397 461 

398您也可以在 Claude 實施某些內容後使用子代理進行驗證。請參閱[新增對抗性審查步驟](#add-an-adversarial-review-step)。462它們的成本主要是 token,因為每個 subagent 都會發送自己的請求,而這些請求與您的主要對話計入相同的用量。有時也包括時間:全新的 subagent 必須先收集您的對話中已有的上下文,所以它最後可能比您直接在當下完成任務*更慢*。

399 463 

400### 使用檢查點倒帶464而且預設情況下,它是同一個模型(或更小的模型)處理同一項任務。您能從中得到平行處理或一雙新的眼睛,但不會得到更聰明的答案。

401 465 

402> [!TIP]466若要減少它們的花費:

403>

404> 您發送的每個提示都會建立一個檢查點。您可以將對話、程式碼或兩者復原到任何先前的檢查點。

405 467 

406Claude 會在每次變更前自動快照檔案,因此檢查點可以復原它們。按兩次 `Escape` 或執行 `/rewind` 以開啟倒帶選單。您可以只復原對話、只復原程式碼、復原兩者,或從選定的訊息進行摘要。詳細資訊請參閱[檢查點](https://code.claude.com/docs/zh-TW/checkpointing.md)。468* 如果某個 subagent 的工作很簡單,例如收集匯入某個模組的檔案或檢查文件中的連結,請在其定義中設定 [`model: haiku`](https://code.claude.com/docs/zh-TW/sub-agents#choose-a-model)。這類工作不需要較大的模型,而 Haiku 每次請求的成本低得多。

469* 要求回傳簡短的摘要,這樣二十個結果就不會塞滿您的上下文。

470* 查看 `/usage`,了解每種 subagent 類型佔您用量的比例,藉此判斷哪些是值得其成本的。

471* 為 `.claude/agents/` 中的自訂 subagent 只提供 `tools: Read, Grep, Glob`。如此它就成為一個無法編輯任何內容的審查者,而這項限制是由 Claude Code 強制執行的,而不是在提示詞中請求的。

407 472 

408與其仔細規劃每一步,您可以告訴 Claude 嘗試一些冒險的事情。如果不起作用,倒帶並嘗試不同的方法。檢查點會與對話一起保存,因此您可以關閉終端機、稍後復原工作階段,並仍然可以倒帶。473這個審查者只是一個簡短的檔案,`.claude/agents/reviewer.md`:

409 474 

410> [!WARNING]475```markdown .claude/agents/reviewer.md theme={null}

411>476---

412> 檢查點只追蹤透過 Claude 的檔案編輯工具所做的變更。透過 Bash 命令或外部程序所做的變更不會被捕獲。這不是 git 的替代品。477name: reviewer

478description: Reviews changed files against the spec they were built from. Use after implementing a feature, before opening the PR.

479tools: Read, Grep, Glob

480---

481You're reviewing code you didn't write. Compare the changed files against the spec you're given,

482check that every requirement is implemented and the listed edge cases have tests,

483and report only the gaps that affect correctness. Skip style.

484```

413 485 

414### 復原對話486請 Claude `have the reviewer compare the rate limiter against SPEC.md`,缺漏就會回到您的工作階段中,讓 Claude 加以修正。

415 487 

416> [!TIP]488### 降低成本和上下文

417>

418> 使用 `/rename` 命名工作階段,並將它們視為分支:每個工作流都有自己的持久內容。

419 489 

420Claude Code 在本地保存對話,因此當任務跨越多個工作階段時,您不必重新解釋內容。執行 [`claude --continue`](https://code.claude.com/docs/zh-TW/sessions#resume-a-session) 以從中斷的地方繼續,或執行 `claude --resume` 以從清單中選擇。給工作階段起描述性名稱,例如 `oauth-migration`,以便稍後找到它們。完整的復原、分支和命名控制集合請參閱[管理工作階段](https://code.claude.com/docs/zh-TW/sessions.md)。490大多數目前的模型都有 1M token 的視窗,而且壓縮會在接近上限時進行,因此您很少會用完上下文。不過,您仍然可能為不需要的上下文*付費*。每個請求都會傳送整個對話,所以一個累積了三項不相關任務的工作階段,在第四項任務的每個回合都會重新讀取這三項。在[快取仍有效時會有折扣](https://code.claude.com/docs/zh-TW/costs.md#why-usage-climbs-in-a-long-session),快取過期後則是全價。

421 491 

422***492[`/usage`](https://code.claude.com/docs/zh-TW/costs) 是第一個要查看的地方。在 Pro、Max、Team 和 Enterprise 上,它會依 skill、subagent、外掛和 MCP 伺服器細分您的用量。當長上下文或頻繁的快取未命中等模式超過您用量的 10% 時,它也會標記出來。接下來是常見的解決方式:

423 493 

424## 自動化和擴展494* 在不相關的任務之間使用 `/clear`。它不需要任何成本,而且意味著下一項任務不必持續為前一項任務的歷史付費。`/clear oauth-migration` 會為您要離開的工作階段命名,讓您之後可以回來。

495* 帶著重點使用 `/compact`,例如 `/compact keep the API changes and the test commands`。在長時間的工作階段中,`/compact` 本身就是一個大型請求,因為它要讀取整個對話才能進行摘要,快取過期後更是如此。

496* 留意背景工作:`/loop`、目標在每個回合後的檢查,以及 Claude 自己的 subagent,都會在您沒有輸入時持續發送請求。

425 497 

426一旦您對一個 Claude 有效,通過平行會話、非交互模式和扇出模式將您的輸出乘以倍數。498> [!NOTE]

499>

500> [提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md)在訂閱方案上約持續一小時,在 API 金鑰、雲端供應商或用量點數上則是五分鐘。除非您變更設定,否則 subagent 的快取為五分鐘。

501>

502> 在一小時快取的情況下,超過約 200K token 且閒置的工作階段會在快取過期前不久被壓縮,所以午餐後回來時,您會從摘要繼續。如果您完全不需要歷史紀錄,開啟新的工作階段仍然比較便宜。

427 503 

428### 運行非交互模式504## 引導工作階段

429 505 

430> [!TIP]506> [!TIP]

431>507>

432> 在 CI、pre-commit hooks 或腳本中使用 `claude -p "prompt"`。添加 `--output-format stream-json --verbose` 以獲得流式 JSON 輸出。508> 觀察第一分鐘,在 Claude 偏離方向時立即按 `Esc`,在兩次修正失敗後執行 `/clear` 並寫一個更好的提示詞,而不是進行第三次修正。

433 509 

434使用 `claude -p "your prompt"`,您可以非交互地運行 Claude,不需要互動式提示。除非您傳遞 `--no-session-persistence`,否則執行仍會建立可恢復的會話。[非交互模式](https://code.claude.com/docs/zh-TW/headless.md)是您將 Claude 整合到 CI 管道、pre-commit hooks 或任何自動化工作流中的方式。輸出格式讓您以編程方式解析結果:純文本、JSON 或流式 JSON。510再多的設定也無法取代觀察第一分鐘,並在 Claude 朝著您不想要的方向前進時介入。這方面的控制方式只有少數幾個,值得熟記:

435 511 

436```bash theme={null}512* `Esc` 會讓 Claude 在動作途中停下,並保留到那一刻為止的所有內容,讓您可以重新導向而不會失去工作成果。

437# One-off queries513* `/rewind`,或在空白提示下按兩次 `Esc`,會開啟[倒帶選單](https://code.claude.com/docs/zh-TW/checkpointing.md#rewind-and-summarize),您可以在那裡將程式碼、對話或兩者都回復到先前的提示詞。這使得先嘗試較大膽的做法、不成功再倒帶變得低風險。同一個選單也可以在部分對話已經過時時將其摘要。

438claude -p "Explain what this project does"514* `/clear` 會重新開始。如果您已經修正同一件事兩次而它仍然是錯的,第三次修正大多只是增加到一個已經包含兩次失敗嘗試的對話中,而 Claude 必須一直重新讀取這些內容。`/clear` 加上一個納入您所學內容的新提示詞,幾乎每次都效果更好。

439 

440# Structured output for scripts

441claude -p "List all API endpoints" --output-format json

442 515 

443# Streaming for real-time processing516> [!WARNING]

444claude -p "Analyze this log file" --output-format stream-json --verbose517>

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

446 519 

447第一個命令列印純文本。`json` 格式傳回一個具有 `result` 欄位的單一 JSON 物件。`stream-json` 格式每行列印一個 JSON 物件,從初始化事件開始。520另外兩個較小的控制:[`/btw`](https://code.claude.com/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw) 可以回答快速問題而不在歷史中加入任何內容。而對於跨越數天的工作,在工作階段中使用 `/rename oauth-migration` 為它命名,之後從 shell 執行 [`claude --resume oauth-migration`](https://code.claude.com/docs/zh-TW/sessions#resume-by-session-id-or-name) 就能接續,檢查點也包含在內。`claude --continue` 會繼續最近的一個工作階段。

448 521 

449### 運行多個 Claude 會話522## 讓 Claude 在您不在時執行

450 523 

451> [!TIP]524> [!TIP]

452>525>

453> 並行運行多個 Claude 會話以加快開發、運行隔離的實驗或啟動複雜的工作流。526> 在執行進入無人值守狀態之前,請確保它知道完成是什麼樣子、能檢查自己的工作,而且只能觸及它應該觸及的東西。給它回合數或花費的上限,並在最後讓一個人核准結果。

454 

455選擇適合您想要自己進行多少協調的平行方法,並在會話需要相互傳遞發現時添加訊息:

456 527 

457* [Worktrees](https://code.claude.com/docs/zh-TW/worktrees.md):在隔離的 git 檢出中運行單獨的 CLI 會話,以便編輯不會衝突528當您不在場捕捉錯誤時,本頁的所有內容都會變得更重要一些。在您觀看時,Claude 缺少某些上下文不是什麼大問題:您會在一兩則訊息內注意到並告訴它。但在您睡前啟動的執行中,沒有人會告訴它,而您會在隔天早上發現它整晚都在錯誤的假設上打造東西。

458* [跨會話訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md):讓您自己運行的會話相互傳遞發現

459* [桌面應用](https://code.claude.com/docs/zh-TW/desktop.md#work-in-parallel-with-sessions):以視覺方式管理多個本地會話,每個會話都在自己的 worktree 中

460* [Claude Code 在網路上](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md):在雲端運行會話,預設情況下在 Anthropic 管理的基礎設施上

461* [Agent view](https://code.claude.com/docs/zh-TW/agent-view.md):研究預覽。執行 `claude agents` 以分派在背景中持續運行的會話,並從一個螢幕監視它們

462* [Agent teams](https://code.claude.com/docs/zh-TW/agent-teams.md):實驗性且預設停用。多個會話的自動協調,具有共享任務、訊息和團隊領導

463 529 

464除了並行化工作外,多個會話還支持質量聚焦的工作流。新鮮的 context 改進代碼審查,因為 Claude 不會偏向於它剛剛編寫的代碼。530在讓任務自行執行之前,值得針對該特定任務逐一檢視以下五個問題:

465 531 

466例如,使用 Writer/Reviewer 模式:5321. 它知道完成是什麼樣子嗎?一個目標條件、一份規格檔案,或一個它必須讓其通過的失敗測試。

5332. 它能檢查自己的工作嗎?測試套件、`Stop` hook、某種審查步驟。

5343. 它被允許觸及什麼?權限規則、`dontAsk`、沙箱、worktree、它唯一可以推送的分支。

5354. 什麼會讓它停下?`--max-turns`、`--max-budget-usd`、支出上限。

5365. 結果會送到哪裡,由誰簽核?一個 PR、一則留言或一份摘要,然後由一個人核准合併、部署,或任何其他無法撤回的動作。

467 537 

468| 會話 A(Writer) | 會話 B(Reviewer) |538一旦開始執行,Claude 就會自行完成一項長時間的任務。留給您的部分是啟動它、決定這次「完成」的意義,以及在最後核准合併。

469| - | - |

470| `為我們的 API 端點實作速率限制器` | |

471| | `審查 @src/middleware/rateLimiter.ts 中的速率限制器實作。找出邊界情況、競態條件,以及與我們現有中介軟體模式的一致性。` |

472| `這是審查回饋:[工作階段 B 輸出]。請處理這些問題。` | |

473 539 

474您可以對測試做類似的事情:讓一個 Claude 編寫測試,然後另一個編寫代碼來通過它們。540### 從指令碼執行 Claude

475 541 

476### 跨文件扇出542[`claude -p "prompt"`](https://code.claude.com/docs/zh-TW/headless) 會執行一次後結束,Claude Code 就是這樣被用在 CI 作業、git hook 和 shell 迴圈中。

477 

478> [!TIP]

479>

480> 迴圈處理各項任務,為每個任務呼叫 `claude -p`。使用 `--allowedTools` 為批次作業預先核准工具。

481 543 

482對於大型遷移或分析,您可以在許多平行 Claude 調用中分配工作。執行 [`/batch <instruction>`](https://code.claude.com/docs/zh-TW/commands#all-commands) 讓 Claude 將變更分割到 5 到 30 個子代理。每個子代理在自己的 worktree 中工作。要改為從您自己的腳本驅動扇出,請循環遍歷 `claude -p`:544在指令碼中,您幾乎總會需要多加幾個旗標:

483 545 

484**1. 生成任務列表**546* [`--bare`](https://code.claude.com/docs/zh-TW/headless#start-faster-with-bare-mode) 會略過 hook、skill、外掛、MCP 伺服器和 `CLAUDE.md` 檔案(包括儲存庫的以及電腦的),讓執行無論在哪裡執行都做同樣的事。它也完全不會動到您的 claude.ai 登入:身分驗證來自 `ANTHROPIC_API_KEY`、您以 `--settings` 傳入的檔案中的 `apiKeyHelper`,或您雲端供應商的憑證。

547* `--append-system-prompt`、`--mcp-config` 和 `--settings` 會明確傳入執行*確實*需要的東西。

548* `--allowedTools` 會預先核准它的工具,而 [`--permission-mode dontAsk`](https://code.claude.com/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 會拒絕其他任何原本會觸發提示的操作。

549* `--output-format json` 會給您一個可供剖析的單一結果物件,而搭配 `--verbose` 的 `stream-json` 會在事件發生時即時串流。

485 550 

486讓 Claude 將需要遷移的文件列表寫入文件,以便下一步中的循環可以讀取它,使用類似 `list all 2,000 Python files that need migrating and save the list to files.txt` 的提示551組合起來看起來像這樣:

487 

488**2. 編寫腳本以循環遍歷列表**

489 552 

490```bash theme={null}553```bash theme={null}

491for file in $(cat files.txt); do554for file in $(cat files.txt); do

492 claude -p "Migrate $file from Python 2 to Python 3. Return OK or FAIL." \555 claude --bare -p "Migrate $file to the new logger API and commit. Reply OK or FAIL." \

493 --allowedTools "Edit,Bash(git commit *)" \556 --allowedTools "Read,Edit,Bash(git add *),Bash(git commit *)" \

494 --permission-mode dontAsk557 --permission-mode dontAsk \

558 --max-turns 20

495done559done

496```560```

497 561 

498**3. 先在幾個檔案上測試,再對全部檔案執行**562執行完成時,Claude 會回覆 `OK` 或 `FAIL`,而達到回合上限的執行則會以錯誤結束。請先在三個檔案上試試看,看看哪裡出錯,修正提示詞,然後再執行其餘檔案。

499 

500根據前 2-3 個檔案出現的問題改進您的提示詞,然後對完整集合執行。`--allowedTools` 旗標會預先核准遷移所需的工具。[`--permission-mode dontAsk`](https://code.claude.com/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 會拒絕其他任何需要核准的操作,這在無人值守執行時非常重要,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准其中部分呼叫。

501 563 

502您也可以將 Claude 整合到現有的資料/處理管道中:564如果您傳入 `--permission-mode auto`,自動模式也能搭配 `-p` 使用。在非互動式執行中,分類器的封鎖會拒絕該單一動作,而 Claude 會繼續進行,重複的封鎖也不會像在終端機中那樣暫停執行。在依賴它之前,請先閱讀[門檻在該情況下如何套用](https://code.claude.com/docs/zh-TW/permission-modes.md#repeated-block-thresholds)。

503 565 

504```bash theme={null}566### 依排程或事件啟動執行

505claude -p "<your prompt>" --output-format json | your_command

506```

507 567 

508### 使用 auto mode 自主運行568一旦執行開始,Claude 就能自行處理其餘部分。它唯一做不到的是決定*開始*,所以必須有某個東西來啟動:您、計時器,或是像 CI 檢查失敗或新 PR 這類的事件。

509 569 

510對於不間斷的執行和背景安全檢查,使用 [auto mode](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)。分類器模型在命令運行前審查它們,阻止範圍升級、未知基礎設施和由敵對內容驅動的操作,同時讓常規工作無提示進行。570在開啟的工作階段內,那就是 [`/loop`](https://code.claude.com/docs/zh-TW/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop),它會依間隔重複執行一個提示詞:

511 571 

512```bash theme={null}572```text theme={null}

513claude --permission-mode auto -p "fix all lint errors"573/loop 15m check CI on this branch, and if it's red pull the failing job's log, fix it and push

514```574```

515 575 

516當分類器在使用 `-p` 旗標的非交互運行中重複阻止操作時,Claude Code 不會停止執行。請參閱 [auto mode 何時回退](https://code.claude.com/docs/zh-TW/permission-modes.md#when-auto-mode-falls-back) 以了解發生的情況以及閾值。576每次執行都是同一個工作階段中的另一個回合,所以不要在長對話中讓它一直執行。對於任何應該在您筆電闔上時進行的事情,[`/schedule`](https://code.claude.com/docs/zh-TW/routines#create-from-the-cli) 會設定一個依計時器執行的[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)。它需要 claude.ai 登入,而不是 API 金鑰。您可以請 Claude 新增 GitHub 事件觸發條件,或在 [claude.ai/code/routines](https://claude.ai/code/routines) 新增 API 觸發條件。

517 

518### 添加對抗性審查步驟

519 577 

520> [!TIP]578> [!WARNING]

521>579>

522> 在將任務視為完成之前,讓一個子代理在新鮮的 context 中審查差異並報告缺陷。580> 在讓雲端排程任務持續執行之前,請以[任務無法繞過的 GitHub 分支規則](https://code.claude.com/docs/zh-TW/routines.md#repositories-and-branch-permissions)保護 `main`。對於任何新的東西,請先觀察最初幾次執行,再放心讓它無人值守。

523 

524Claude 無人值守工作的時間越長,在您將工作視為完成之前進行獨立檢查就越重要。在新鮮的 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) context 中運行的審查者只看到差異和您給它的標準,而不是產生變更的推理,因此它按自己的條款評估結果。

525 581 

526對於正確性檢查,執行捆綁的 [`/code-review` skill](https://code.claude.com/docs/zh-TW/commands),它在新鮮的子代理中審查當前差異以查找錯誤,並將發現返回到會話。要檢查差異是否符合您的計劃,請自己編寫審查提示。命名要檢查的工作、要檢查的計劃以及什麼算作發現:582### 平行執行工作階段

527 583 

528```text wrap theme={null}584當您同時進行多項獨立的工作時,請為每一項提供自己的檢出,讓編輯不會互相衝突。[`claude -w feature-auth`](https://code.claude.com/docs/zh-TW/worktrees#start-claude-in-a-worktree) 會在新的 worktree 中啟動工作階段,[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md#work-in-parallel-with-sessions)可以並排執行多個這樣的工作階段,而[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)則是在雲端而非您的電腦上執行它們。

529Use a subagent to review the rate limiter diff against PLAN.md. Check that

530every requirement is implemented, the listed edge cases have tests, and

531nothing outside the task's scope changed. Report gaps, not style preferences.

532```

533 585 

534因為審查者作為子代理運行,實施會話直接接收缺陷,可以修復它們並重新審查,而無需您在窗口之間複製發現。586Worktree 是全新的檢出,這意味著像 `.env` 這樣被 gitignore 的檔案不會在那裡,相依套件也尚未安裝。對於前者,請在儲存庫根目錄的 [`.worktreeinclude`](https://code.claude.com/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees) 中列出您需要的被 gitignore 檔案(語法與 `.gitignore` 相同),Claude Code 就會將它們複製到它建立的每個 worktree 中:

535 587 

536被提示尋找缺陷的審查者通常會報告一些,即使工作是健全的,因為那是它被要求做的。追逐每個發現會導致過度工程:額外的抽象層、防禦性代碼和無法發生的情況的測試。告訴審查者只標記影響正確性或陳述要求的缺陷,並將其餘的視為可選。588```text .worktreeinclude theme={null}

589.env

590.env.local

591config/dev-credentials.json

592```

537 593 

538***594只放小檔案:它是複製而不是連結,所以把 `node_modules` 放在裡面就意味著每個 worktree 都要完整複製一份。對於大型目錄,可以使用 [`worktree.symlinkDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#worktree-symlinkdirectories) 設定,或將安裝命令寫在 `CLAUDE.md` 中,讓 Claude 每次在新的檢出中啟動時都會執行它。

539 595 

540## 避免常見的失敗模式596您很少需要自己清理這些:

541 597 

542這些是常見的錯誤。及早識別它們可以節省時間:598* 當您結束一個未命名的 worktree 工作階段時,如果其中沒有任何內容,Claude Code 會[移除該 worktree](https://code.claude.com/docs/zh-TW/worktrees.md#clean-up-worktrees)。對於已命名的工作階段或有變更的工作階段,它會詢問要怎麼做。

599* Subagent 的 worktree 會在 subagent 完成且沒有變更時消失。

600* 確實被遺留下來的 subagent 和背景工作階段 worktree,會在存在時間超過 `cleanupPeriodDays` 且不含任何工作時被清除。

543 601 

544* **廚房水槽會話。** 你從一項任務開始,然後問 Claude 一些無關的事情,然後回到第一項任務。上下文充滿了無關的資訊。602> [!NOTE]

545 > **修正**:在無關的任務之間使用 `/clear`。603>

546* **一次又一次地更正。** Claude 做錯了什麼,你更正它,它仍然是錯的,你再次更正。上下文被失敗的方法污染了。604> `claude -p --worktree` 執行需要您自己清理,因為它結束時不會詢問。請使用 `git worktree remove <path>` 移除它們,如果 git 因為 worktree 被鎖定而拒絕,請先執行 `git worktree unlock <path>`。

547 > **修正**:在兩次失敗的更正後,使用 `/clear` 並寫一個更好的初始提示,納入你所學到的內容。

548* **過度指定的 CLAUDE.md。** 如果你的 CLAUDE.md 太長,Claude 會忽略其中一半,因為重要的規則在雜訊中丟失了。

549 > **修正**:無情地修剪。如果 Claude 已經在沒有指令的情況下正確地做了某事,請刪除它或將其轉換為 hook。

550* **信任然後驗證的差距。** Claude 產生了一個看起來合理的實現,但沒有處理邊界情況。

551 > **修正**:始終提供驗證(測試、指令碼、螢幕截圖)。如果你無法驗證它,就不要發佈它。

552* **無限探索。** 你要求 Claude「調查」某些東西而沒有限定範圍。Claude 讀取數百個檔案,填滿了上下文。

553 > **修正**:將調查範圍縮小或使用子代理,以便探索不會消耗你的主要上下文。

554 605 

555***606對於跨越許多檔案的單一大型機械式變更,[`/batch migrate every handler to the v2 response helpers`](https://code.claude.com/docs/zh-TW/commands) 會將工作分成 5 到 30 個單元,並向您展示計畫。接著它會在各自的 worktree 中執行每個單元,並為其開啟一個 PR。從您的 shell 執行 [`claude agents`](https://code.claude.com/docs/zh-TW/agent-view)(仍為研究預覽)可以在一個畫面中查看您電腦上所有在背景執行的內容。

556 607 

557## 培養您的直覺608第二個工作階段也是您能取得的最簡單的獨立審查者。一個工作階段撰寫速率限制器,另一個在沒有看過撰寫過程的情況下審查 `@src/middleware/rateLimiter.ts`,然後您將發現貼回第一個工作階段。這與 `/code-review` 的概念相同,只是由您傳遞訊息。

558 609 

559本指南中的模式不是一成不變的。它們是通常效果很好的起點,但可能不是每種情況的最優選擇。610## 可以停止做的事

560 611 

561有時您\_應該\_讓 context 累積,因為您深入一個複雜的問題,歷史很有價值。有時您應該跳過規劃,讓 Claude 找出答案,因為任務是探索性的。有時模糊的提示正是您想要的,因為您想在限制它之前看到 Claude 如何解釋問題。612以下每一項在撰寫時都是好建議。大多數是為了彌補模型當時還無法可靠做到的事,而模型現在已經趕上了。如果其中幾項仍是您的習慣,以下說明為什麼可以安心捨棄它們。

562 613 

563注意什麼有效。當 Claude 產生出色的輸出時,注意您做了什麼:提示結構、您提供的 context、您所在的模式。當 Claude 遇到困難時,問為什麼。Context 太嘈雜了嗎?提示太模糊了嗎?任務對於一次通過來說太大了嗎?614| 舊建議 | 為什麼不再需要 |

615| :- | :- |

616| 上下文視窗是您的主要限制,要積極管理它 | 大多數目前的模型都有 1M token 的視窗,而且壓縮會自動進行,所以用完的情況很少見。在任務之間使用 `/clear` 仍然值得,因為專注的上下文能帶來更好的答案且成本更低。 |

617| 對 Claude 一直漏掉的指令加上 IMPORTANT 或全大寫 | 較舊的模型有時需要這種強調。目前的模型會遵循措辭平實的一行,而堆疊強調大多只會讓 Claude 過度套用規則。如果它是不能變通的規則,請將它改成 hook 或拒絕規則。如果那一行在長檔案中被淹沒了,需要的是讓檔案更短。 |

618| 使用 subagent 來保護您的上下文視窗 | 用完上下文已經很少是問題了。Subagent 仍然很適合平行工作、將嘈雜的輸出排除在外,以及獨立審查,但每一項都需要額外的 token。 |

619| 委派給 subagent 以得到更好的答案 | 將同一項任務交給 subagent 並不會讓答案變得更好。全新的審查者確實有幫助,因為它沒看過您的推理,但這與委派是不同的事。 |

620| 在提示詞中使用 `think hard`、`think harder`、`be thorough` | Effort 才是控制這件事的方式。這些詞句是一般的提示詞文字,只會在 effort 設定範圍內稍微引導 Claude,而不是能提高 effort 的關鍵字。`ultrathink` 仍然有效:它會在該單一回合要求更深入的推理,而不會動到您的 effort 設定。 |

621| 告訴 Claude 繼續、迴圈直到完成、不要偷懶 | 目前的模型通常會在不被告知的情況下持續完成已說定的任務,而這類語句更可能導致過度工作,而不是解決停滯。給 Claude 一個要通過的檢查則是另一回事,仍然值得去做。如果某次執行確實提前停止,請說 `continue`,而對於沒有人觀看的執行,`/goal` 或 `Stop` hook 會強制執行。 |

622| 在 `CLAUDE.md` 中描述您的架構和檔案配置 | Claude 會自己閱讀儲存庫。只寫下儲存庫中沒有的內容。 |

564 623 

565隨著時間的推移,您將培養沒有指南可以捕捉的直覺。您將知道何時具體以及何時開放,何時規劃以及何時探索,何時清除 context 以及何時讓它累積。624如果本頁的任何其他建議開始讓您覺得是瑣碎的雜事,那可能表示它也應該被列入這張表中。

566 625 

567## 相關資源626## 相關資源

568 627 

569* [Claude Code 如何工作](https://code.claude.com/docs/zh-TW/how-claude-code-works.md):代理循環、工具和 context 管理628* [Claude Code 如何運作](https://code.claude.com/docs/zh-TW/how-claude-code-works.md):迴圈、工具,以及啟動時載入的內容

570* [擴展 Claude Code](https://code.claude.com/docs/zh-TW/features-overview.md):skills、hooks、MCP、subagents 和 plugins629* [探索上下文視窗](https://code.claude.com/docs/zh-TW/context-window.md):工作階段中佔用空間的內容及其載入時機

571* [常見工作流](https://code.claude.com/docs/zh-TW/common-workflows.md):調試、測試、PR 等的分步配方630* [擴充 Claude Code](https://code.claude.com/docs/zh-TW/features-overview.md):在 skill、hook、MCP、subagent 和外掛之間做選擇

572* [CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md):存儲項目約定和持久 context631* [選擇權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md)和[設定權限](https://code.claude.com/docs/zh-TW/permissions.md)

632* [有效管理成本](https://code.claude.com/docs/zh-TW/costs.md)

633* [以程式方式執行 Claude Code](https://code.claude.com/docs/zh-TW/headless.md)和[使用雲端排程任務自動化工作](https://code.claude.com/docs/zh-TW/routines.md)

634* 給團隊主管和管理員:[為您的組織設定 Claude Code](https://code.claude.com/docs/zh-TW/admin-setup.md)

chrome.md +1 −1

Details

43 43 

44在已啟用 HIPAA 的 Enterprise 組織中,Claude in Chrome 預設為關閉,[Owner](https://code.claude.com/docs/zh-TW/server-managed-settings.md#access-control) 可以在 [**Organization settings > Claude in Chrome**](https://claude.ai/admin-settings/browser-extension) 中將其開啟。您與 Anthropic 簽訂的商業夥伴協議(BAA)不涵蓋透過 Claude in Chrome 傳送至第三方網站的資料。如需 Eligible Services 清單,請參閱 [Implementation Guide](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide)。44在已啟用 HIPAA 的 Enterprise 組織中,Claude in Chrome 預設為關閉,[Owner](https://code.claude.com/docs/zh-TW/server-managed-settings.md#access-control) 可以在 [**Organization settings > Claude in Chrome**](https://claude.ai/admin-settings/browser-extension) 中將其開啟。您與 Anthropic 簽訂的商業夥伴協議(BAA)不涵蓋透過 Claude in Chrome 傳送至第三方網站的資料。如需 Eligible Services 清單,請參閱 [Implementation Guide](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide)。

45 45 

46Chrome 整合還需要使用 `/login` 登入。如果您使用 API 金鑰或來自 [`claude setup-token`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 的長期 token 進行身分驗證,即使您傳入 `--chrome`,Claude Code 也會保持 Chrome 整合關閉,因為瀏覽器擴充功能無法使用這些憑證進行身分驗證。在 v2.1.216 之前,這些工作階段可以啟用 Chrome 整合,但每次嘗試連線至瀏覽器擴充功能時都會因 403 錯誤而失敗。46Chrome 整合還需要使用 `/login` 登入。如果您使用 API 金鑰或來自 [`claude setup-token`](https://code.claude.com/docs/zh-TW/authentication#generate-a-long-lived-token) 的長期 token 進行身分驗證,即使您傳入 `--chrome`,Claude Code 也會保持 Chrome 整合關閉。瀏覽器擴充功能無法使用這些憑證進行身分驗證。

47 47 

48> [!NOTE]48> [!NOTE]

49>49>

Details

994 994 

995[核准記憶](https://code.claude.com/docs/zh-TW/server-managed-settings.md#approval-memory)涵蓋核准持續多長時間以及何時再次出現對話框。995[核准記憶](https://code.claude.com/docs/zh-TW/server-managed-settings.md#approval-memory)涵蓋核准持續多長時間以及何時再次出現對話框。

996 996 

997Claude Code 應用某些傳遞的 `env` 變數而不向開發者顯示核准對話框,例如模型選擇設定和數值限制。其他傳遞的變數可能需要開發者的核准才能生效;非空代理伺服器、基礎 URL 或 `OTEL_EXPORTER_OTLP_ENDPOINT` 值總是這樣。當傳遞的變數需要核准時,對話框會命名它。997Claude Code 會套用某些傳送來的 `env` 變數而不向開發人員顯示核准對話方塊,例如模型選擇設定與數值限制。其他傳送來的變數可能需要開發人員核准;非空的代理伺服器、基礎 URL 或 `OTEL_EXPORTER_OTLP_ENDPOINT` 值一律需要。當傳送來的變數需要核准時,對話方塊會指名該變數。[環境變數與核准對話方塊](https://code.claude.com/docs/zh-TW/server-managed-settings.md#environment-variables-and-the-approval-dialog)提供詳細資訊,包括四個隱私切換開關,其傳送的值決定是否需要核准。

998 

999[環境變數和核准對話框](https://code.claude.com/docs/zh-TW/server-managed-settings.md#environment-variables-and-the-approval-dialog)有詳細資訊,包括四個隱私切換,其傳遞值決定它們是否需要核准。在 v2.1.218 之前,Claude Code 應用較少的變數而不詢問開發者,因此更多傳遞的變數觸發對話框。

1000 998 

1001gateway 的[遙測](#telemetry)設定推送 `OTEL_EXPORTER_OTLP_ENDPOINT`,因此設定 `telemetry.forward_to` 在每個互動式用戶端上觸發對話框。對話框保護開發者的機器免受受損或敵對 gateway 的影響,而不是保護組織免受開發者的影響。999gateway 的[遙測](#telemetry)設定推送 `OTEL_EXPORTER_OTLP_ENDPOINT`,因此設定 `telemetry.forward_to` 在每個互動式用戶端上觸發對話框。對話框保護開發者的機器免受受損或敵對 gateway 的影響,而不是保護組織免受開發者的影響。

1002 1000 

Details

264* **完整逐步說明,包括 PR 建立**:請參閱[檢查和迭代](https://code.claude.com/docs/zh-TW/web-quickstart.md#review-and-iterate)264* **完整逐步說明,包括 PR 建立**:請參閱[檢查和迭代](https://code.claude.com/docs/zh-TW/web-quickstart.md#review-and-iterate)

265* **讓 Claude 自動監控 PR 以查找 CI 失敗和審查評論**:請參閱[自動修復 pull requests](#auto-fix-pull-requests)265* **讓 Claude 自動監控 PR 以查找 CI 失敗和審查評論**:請參閱[自動修復 pull requests](#auto-fix-pull-requests)

266 266 

267#### 疑難排解差異檢視中缺少的檔案

268 

269當差異檢視與基礎分支進行比較時,您預期的檔案可能不會出現在差異檢視的檔案清單中,無論工作階段是否已推送變更:

270 

271* **尚未推送變更**:清單包含 Claude 本身所做的編輯,但不包含 Claude 執行的命令(例如格式化工具)所做的變更

272* **已推送變更**:清單包含已推送的提交,但不包含最後一次推送之後所做的變更

273 

274若要將缺少的變更加入清單,請要求 Claude 提交並推送。

275 

267### 管理上下文276### 管理上下文

268 277 

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

270 279 

271* **`/model`、`/effort`、`/color` 和 `/rename`**:將值作為引數傳遞,例如 `/model sonnet`,而不是開啟終端機選擇器或滑塊。引數形式遵循每個命令的[可用性說明](https://code.claude.com/docs/zh-TW/commands.md#all-commands)。280* **`/model`、`/effort`、`/color` 和 `/rename`**:將值作為引數傳遞,例如 `/model sonnet`,而不是開啟終端機選擇器或滑塊。引數形式遵循每個命令的[可用性說明](https://code.claude.com/docs/zh-TW/commands.md#all-commands)。

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

273* **`/config`**:在瀏覽器中的 claude.ai/code 上,此命令會開啟設定中的 Claude Code 區段,而不是設定某個值。若要變更雲端工作階段的設定,請在環境上設定[環境變數](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)。在[專案](https://code.claude.com/docs/zh-TW/claude-projects.md)執行緒之外、只有一個儲存庫的工作階段中,請改為將該設定鍵提交至該儲存庫的 `.claude/settings.json`。[雲端工作階段中的設定](https://code.claude.com/docs/zh-TW/settings.md#settings-in-cloud-sessions)列出了每個工作階段會讀取的內容。282* **`/config`**:在瀏覽器中的 claude.ai/code 上,此命令會開啟 **設定 > Code** 或 **設定 > Claude Code**,而不是設定某個值。若要變更雲端工作階段的設定,請在環境上設定[環境變數](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)。在[專案](https://code.claude.com/docs/zh-TW/claude-projects.md)執行緒之外、只有一個儲存庫的工作階段中,請改為將該設定鍵提交至該儲存庫的 `.claude/settings.json`。[雲端工作階段中的設定](https://code.claude.com/docs/zh-TW/settings.md#settings-in-cloud-sessions)列出了每個工作階段會讀取的內容。

274 283 

275對於[專案執行緒](https://code.claude.com/docs/zh-TW/claude-projects.md#choose-models-and-let-claude-manage-context)之外的雲端工作階段中的上下文管理:284對於[專案執行緒](https://code.claude.com/docs/zh-TW/claude-projects.md#choose-models-and-let-claude-manage-context)之外的雲端工作階段中的上下文管理:

276 285 


337* **儲存庫存取**:驗證預設未啟用346* **儲存庫存取**:驗證預設未啟用

338* **敏感內容**:在共享之前檢查您的工作階段。工作階段可能包含來自私人 GitHub 儲存庫的程式碼和憑證347* **敏感內容**:在共享之前檢查您的工作階段。工作階段可能包含來自私人 GitHub 儲存庫的程式碼和憑證

339 348 

340若要要求收件者具有儲存庫存取權限,或從共享工作階段中隱藏您的名稱,請前往 [**設定 > Claude Code > 共享設定**](https://claude.ai/settings/claude-code)。349若要要求收件者具有儲存庫存取權限,或從共享工作階段中隱藏您的名稱,請在 claude.ai 上開啟設定,然後:

350 

351* **如果設定功能表顯示 Code 而非 Claude Code**:前往 [**隱私**](https://claude.ai/settings/data-privacy-controls),其中包含這些設定

352* **否則**:前往 [**Claude Code > 共享設定**](https://claude.ai/settings/claude-code)

341 353 

342### 封存工作階段354### 封存工作階段

343 355 


368根據 PR 來自何處以及您使用的設備,有幾種方式可以開啟自動修復:380根據 PR 來自何處以及您使用的設備,有幾種方式可以開啟自動修復:

369 381 

370* **在雲端工作階段中建立的 PR**:在 claude.ai/code 開啟工作階段,並在 [**Changes** 卡片](#review-changes)中找到該 pull request。開啟 pull request 標題旁的 **⋮** 選單,並開啟**自動修復**382* **在雲端工作階段中建立的 PR**:在 claude.ai/code 開啟工作階段,並在 [**Changes** 卡片](#review-changes)中找到該 pull request。開啟 pull request 標題旁的 **⋮** 選單,並開啟**自動修復**

371* **從您的終端**:在 PR 的分支上執行 [`/autofix-pr`](https://code.claude.com/docs/zh-TW/commands)。Claude Code 使用 `gh` 偵測開啟的 PR,生成網頁工作階段,並在一個步驟中開啟自動修復383* **從您的終端**:在 PR 的分支上執行 [`/autofix-pr`](https://code.claude.com/docs/zh-TW/commands)。Claude Code 使用 `gh` 偵測開啟的 PR,生成雲端工作階段,並在一個步驟中開啟自動修復

372* **從行動應用程式**:告訴 Claude 自動修復 PR,例如「監視此 PR 並修復任何 CI 失敗或審查評論」384* **從行動應用程式**:告訴 Claude 自動修復 PR,例如「監視此 PR 並修復任何 CI 失敗或審查評論」

373* **任何現有 PR**:將 PR URL 貼到工作階段中並告訴 Claude 自動修復它385* **任何現有 PR**:將 PR URL 貼到工作階段中並告訴 Claude 自動修復它

374 386 

Details

55}55}

56```56```

57 57 

58Claude Code 也會在啟動時執行此命令,當它無法驗證您現有的 AWS 認證時,並在 `Authentication` 面板中顯示命令的輸出,直到登入完成。58當 Claude Code 無法驗證您現有的 AWS 憑證時,也會在啟動時執行此命令,並在 `Authentication` 面板中顯示命令的輸出,直到登入完成。

59 59 

60設定 `awsAuthRefresh` 後,執行 `/login`,選取**第三方平台**,然後在**使用第三方平台**下選取 **Claude Platform on AWS · 重新整理認證**。Claude Code 會執行已設定的命令,並重新讀取您的 AWS 認證,而無需重新啟動。60設定 `awsAuthRefresh` 後,執行 `/login`,選取**第三方平台**,然後在**使用第三方平台**下選取 **Claude Platform on AWS · 重新整理認證**。Claude Code 會執行已設定的命令,並重新讀取您的 AWS 認證,而無需重新啟動。

61 61 


95 95 

96AWS 上的 Claude Platform 使用與直接 Claude API 相同的模型 ID。96AWS 上的 Claude Platform 使用與直接 Claude API 相同的模型 ID。

97 97 

98預設別名 `fable`、`opus`、`sonnet` 和 `haiku` 解析為 Claude Code 針對 AWS 上的 Claude Platform 的內建預設值,這些值可能落後於最新版本。沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 別名解析為 Opus 5.5。在 v2.1.280 之前,它解析為 Opus 5(自 v2.1.219 起),以及 Opus 4.8(自 v2.1.207 起)。98預設別名 `fable`、`opus`、`sonnet` 和 `haiku` 解析為 Claude Code 針對 AWS 上的 Claude Platform 的內建預設值,這些值可能落後於最新版本。沒有 `ANTHROPIC_DEFAULT_OPUS_MODEL`,`opus` 別名解析為 Opus 5.5。在 v2.1.280 之前,它解析為 Opus 5(自 v2.1.219 起)。

99 99 

100如果您將 Claude Code 部署到團隊,請明確固定模型 ID,以便新版本不會一次移動所有人:100如果您將 Claude Code 部署到團隊,請明確固定模型 ID,以便新版本不會一次移動所有人:

101 101 

Details

70您在 [claude.ai/code](https://claude.ai/code)、桌面應用程式的 Code 標籤中,或在 Claude 行動應用程式中建立和使用 projects,適用於 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 和 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude)。在瀏覽器和桌面應用程式中,有兩種方式開始 project:70您在 [claude.ai/code](https://claude.ai/code)、桌面應用程式的 Code 標籤中,或在 Claude 行動應用程式中建立和使用 projects,適用於 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 和 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude)。在瀏覽器和桌面應用程式中,有兩種方式開始 project:

71 71 

72* **從頭開始**,當您知道想要 Claude 執行的工作流時:打開 **New project** 對話框並命名它。[從頭開始啟動新 project](#start-a-new-project-from-scratch) 會逐步介紹該對話框。72* **從頭開始**,當您知道想要 Claude 執行的工作流時:打開 **New project** 對話框並命名它。[從頭開始啟動新 project](#start-a-new-project-from-scratch) 會逐步介紹該對話框。

73* **從已在執行工作的雲端工作階段**:在該工作階段的側邊欄功能表中,選擇 **Move to project**,然後選擇 **Continue as new project**。Claude 會根據工作階段正在執行的內容提議 project 的設定。請參閱 [從現有雲端工作階段開始](#start-from-an-existing-cloud-session)。73* **從已在執行工作的雲端工作階段**:在該工作階段的側邊欄功能表中,選擇 **Continue in project**,然後選擇 **Continue as new project**。Claude 會根據工作階段正在執行的內容提議 project 的設定。請參閱 [從現有雲端工作階段開始](#start-from-an-existing-cloud-session)。

74 74 

75無論哪種方式,[首先檢查先決條件](#check-the-prerequisites)。75無論哪種方式,[首先檢查先決條件](#check-the-prerequisites)。

76 76 


113 113 

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

115 115 

116如果您自己啟動的雲端工作階段正在執行屬於 project 的工作,請打開其側邊欄功能表並選擇 **Move to project**,然後從子功能表中挑選:116如果您自己啟動的雲端工作階段正在執行屬於 project 的工作,請打開其側邊欄功能表並選擇 **Continue in project**,然後從子功能表中挑選:

117 117 

118* 選擇 **Continue as new project** 以從該工作階段建立新 project。project 會打開,Claude 讀取工作階段並在 project 對話中發佈 **Setup recommendations** 供您確認。原始工作階段保留在您的工作階段清單中。如果它在回合中途,它會繼續執行,因此如果您不想兩者同時工作,請自己停止它。118* 選擇 **Continue as new project** 以從該工作階段建立新 project。project 會打開,Claude 讀取工作階段並在 project 對話中發佈 **Setup recommendations** 供您確認。原始工作階段保留在您的工作階段清單中。如果它在回合中途,它會繼續執行,因此如果您不想兩者同時工作,請自己停止它。

119* 選擇您現有的其中一個 project,將工作階段的工作帶入該 project。該 project 會打開,並有一則代表您發送的訊息,要求 Claude 讀取工作階段並從它停止的地方繼續。原始工作階段保留在您的工作階段清單中,未改變。119* 選擇您現有的其中一個 project,將工作階段的工作帶入該 project。該 project 會打開,並有一則代表您發送的訊息,要求 Claude 讀取工作階段並從它停止的地方繼續。原始工作階段保留在您的工作階段清單中,未改變。


262 262 

263在有 project 需要的資料夾的電腦上,通過以下兩種方式之一通過 Remote Control 使其可用。兩者都需要該電腦上的 Claude Code v2.1.280 或更高版本。263在有 project 需要的資料夾的電腦上,通過以下兩種方式之一通過 Remote Control 使其可用。兩者都需要該電腦上的 Claude Code v2.1.280 或更高版本。

264 264 

265* **在 Claude 桌面應用程式中**:打開 **Settings > Claude Code**,打開 **Use this computer from your phone and claude.ai**,並將資料夾添加到該開關下的清單。當應用程式打開時,執行緒可以在此電腦上執行。265* **在 Claude 桌面應用程式中**:打開 **Settings > Code** 或 **Settings > Claude Code**,並打開 **Use this computer from your phone and claude.ai**。將資料夾添加到該開關下的清單。當應用程式打開時,執行緒可以在此電腦上執行。

266* **在終端中**:在資料夾中執行 `claude remote-control` 並讓它執行。在 git 儲存庫中,添加 `--spawn worktree` 以給每個執行緒那裡其自己的 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 而不是資料夾本身。266* **在終端機中**:在資料夾中執行 `claude remote-control` 並讓它執行。在 git 儲存庫中,添加 `--spawn worktree` 以給每個執行緒那裡其自己的 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 而不是資料夾本身。

267 267 

268**2. 使用 Work locally 要求任務**268**2. 使用 Work locally 要求任務**

269 269 


275 275 

276執行緒在 [auto mode](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) 中執行,因此 Claude 在該資料夾中執行命令和編輯檔案而不每次都詢問您。如果 auto mode 在該電腦的 Claude Code 中不可用或關閉,執行緒執行而不使用它,並且它引發的任何權限提示等待您在執行緒中的回答,如 [解除等待批准的執行緒](#unblock-a-thread-waiting-on-approval) 所述。276執行緒在 [auto mode](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) 中執行,因此 Claude 在該資料夾中執行命令和編輯檔案而不每次都詢問您。如果 auto mode 在該電腦的 Claude Code 中不可用或關閉,執行緒執行而不使用它,並且它引發的任何權限提示等待您在執行緒中的回答,如 [解除等待批准的執行緒](#unblock-a-thread-waiting-on-approval) 所述。

277 277 

278當執行緒執行時,其標題中的筆記本電腦圖示顯示您的電腦是否已連接。點擊它以查看執行緒使用的資料夾或關閉連接。當該電腦睡眠時執行緒暫停,如果桌面應用程式或 `claude remote-control` 退出則停止。[失去與您資料夾的聯繫](#lost-contact-with-your-folder) 涵蓋了讓它再次執行。在桌面應用程式中,在 **Settings > Claude Code** 下打開 **Keep this computer awake for Remote Control** 以防止電腦自動睡眠。278當執行緒執行時,其標題中的筆記型電腦圖示顯示您的電腦是否已連接。點擊它以查看執行緒使用的資料夾或關閉連接。當該電腦睡眠時執行緒暫停,如果桌面應用程式或 `claude remote-control` 退出則停止。

279 

280* **要讓執行緒再次執行**:請參閱 [失去與您資料夾的聯繫](#lost-contact-with-your-folder)

281* **要防止電腦自動睡眠**:在桌面應用程式中,於 **Settings > Code** 或 **Settings > Claude Code** 中打開 **Keep this computer awake for Remote Control**

279 282 

280當 [**Require trusted devices**](https://code.claude.com/docs/zh-TW/remote-control.md#trusted-devices) 對您的帳戶打開時,project 無法在您的電腦上執行執行緒。283當 [**Require trusted devices**](https://code.claude.com/docs/zh-TW/remote-control.md#trusted-devices) 對您的帳戶打開時,project 無法在您的電腦上執行執行緒。

281 284 


427幾個 Claude Code 功能讓多個工作階段同時工作,因此平行執行工作本身不是 project 的用途。在 project 中,Claude 啟動並跟蹤工作階段而不是您,每個都從相同的指示開始。以下是每個相鄰功能如何連接到 project:430幾個 Claude Code 功能讓多個工作階段同時工作,因此平行執行工作本身不是 project 的用途。在 project 中,Claude 啟動並跟蹤工作階段而不是您,每個都從相同的指示開始。以下是每個相鄰功能如何連接到 project:

428 431 

429* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您團隊 Slack 頻道中的 Claude,在 Team 和 Enterprise 方案上。頻道中的任何人都可以給它工作,頻道中的每個人都看到並引導它,它使用管理員為該頻道設定的連接。project 是您的:您是唯一給它工作或看到其執行緒的人,它使用您自己的 GitHub 存取和 connectors,它在 Pro 和 Max 上。[Claude Tag 與 Cowork 和 Claude Code 的不同之處](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) 有並排比較。432* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您團隊 Slack 頻道中的 Claude,在 Team 和 Enterprise 方案上。頻道中的任何人都可以給它工作,頻道中的每個人都看到並引導它,它使用管理員為該頻道設定的連接。project 是您的:您是唯一給它工作或看到其執行緒的人,它使用您自己的 GitHub 存取和 connectors,它在 Pro 和 Max 上。[Claude Tag 與 Cowork 和 Claude Code 的不同之處](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) 有並排比較。

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

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

432* **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)。435* **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)。

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


445* 您無法將自己在機器上啟動的工作階段新增到 project,但您可以[將其工作帶入 project](#start-from-an-existing-cloud-session)。Project 通過 [Remote Control 在您的機器上執行執行緒](#run-a-thread-on-your-own-computer)到達您的機器,該部分列出了它需要的內容。448* 您無法將自己在機器上啟動的工作階段新增到 project,但您可以[將其工作帶入 project](#start-from-an-existing-cloud-session)。Project 通過 [Remote Control 在您的機器上執行執行緒](#run-a-thread-on-your-own-computer)到達您的機器,該部分列出了它需要的內容。

446* 雲端執行緒的沙箱在回合之間暫停,並在執行緒繼續時恢復。如果沙箱無法恢復,執行緒從新克隆繼續,因此未提交的變更可能會遺失。在長任務上,要求 Claude 提交並推送進行中的工作。449* 雲端執行緒的沙箱在回合之間暫停,並在執行緒繼續時恢復。如果沙箱無法恢復,執行緒從新克隆繼續,因此未提交的變更可能會遺失。在長任務上,要求 Claude 提交並推送進行中的工作。

447* project 屬於一個使用者。您無法與另一個使用者共享 project 或其執行緒,執行緒記錄沒有其他雲端工作階段具有的共享選項。在測試版期間,projects 沒有組織級控制。450* project 屬於一個使用者。您無法與另一個使用者共享 project 或其執行緒,執行緒記錄沒有其他雲端工作階段具有的共享選項。在測試版期間,projects 沒有組織級控制。

448* 執行緒屬於啟動它的一個 project。您無法將執行緒移動或複製到另一個 project,或將其移出以獨立存在。[**Move to project**](#start-from-an-existing-cloud-session) 僅以另一種方式進行:它將雲端工作階段的工作帶入 project。您無法將兩個 projects 合併為一個。451* 執行緒屬於啟動它的一個 project。您無法將執行緒移動或複製到另一個 project,或將其移出以獨立存在。[**Continue in project**](#start-from-an-existing-cloud-session) 僅以另一種方式進行:它將雲端工作階段的工作帶入 project。您無法將兩個 projects 合併為一個。

449 452 

450## 故障排除453## 故障排除

451 454 


489 492 

490### 與您的資料夾失去聯繫493### 與您的資料夾失去聯繫

491 494 

492在您的電腦上執行的執行緒在 Claude Code 工作階段停止回應時顯示此訊息,通常是因為電腦進入睡眠狀態或桌面應用程式或 `claude remote-control` 退出。喚醒電腦,如果桌面應用程式或 `claude remote-control` 不再在那裡執行,請重新啟動它:重新打開應用程式並確認 **Settings > Claude Code** 下的 **Use this computer from your phone and claude.ai** 仍然開啟,或在同一資料夾中再次執行 `claude remote-control`。495在您的電腦上執行的執行緒在該處的 Claude Code 工作階段停止回應時顯示此訊息,通常是因為電腦進入睡眠狀態或桌面應用程式或 `claude remote-control` 退出。喚醒電腦。如果桌面應用程式或 `claude remote-control` 不再在那裡執行,請重新啟動它:

496 

497* **桌面應用程式**:重新打開應用程式並確認 **Settings > Code** 或 **Settings > Claude Code** 下的 **Use this computer from your phone and claude.ai** 仍然開啟

498* **終端機**:在同一資料夾中再次執行 `claude remote-control`

493 499 

494### 其他訊息500### 其他訊息

495 501 

Details

71* 在終端機工作階段中,`/code-review` 會以 [forked subagent](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent) 的形式執行審查71* 在終端機工作階段中,`/code-review` 會以 [forked subagent](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent) 的形式執行審查

72* 在使用文字或 JSON 輸出的 `-p` 執行中72* 在使用文字或 JSON 輸出的 `-p` 執行中

73 73 

74在會請求發現問題清單的主機應用程式中(例如[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md#review-your-code)),Claude 會改為透過 [`ReportFindings` 工具](https://code.claude.com/docs/zh-TW/tools-reference)回報審查發現的問題。報告會以發現問題清單的形式呈現,每個項目會顯示檔案位置、一句話摘要,以及該問題若帶有類別標籤時所顯示的標籤(例如 `correctness`)。主機請求適用於所有 effort 等級,且需要 Claude Code v2.1.218 或更新版本。74在會請求發現問題清單的主機應用程式中(例如[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md#review-your-code)),Claude 會改為透過 [`ReportFindings` 工具](https://code.claude.com/docs/zh-TW/tools-reference)回報審查發現的問題。報告會以發現問題清單的形式呈現,每個項目會顯示檔案位置、一句話摘要,以及該問題若帶有類別標籤時所顯示的標籤(例如 `correctness`)。主機請求適用於所有 effort 等級。

75 75 

76當 Claude 在工作階段稍後修正已回報的問題時,會再次回報這些問題。接著 Claude Code 會在更新後的發現問題清單中,將每個問題標記為已修正、已略過或無需變更。76當 Claude 在工作階段稍後修正已回報的問題時,會再次回報這些問題。接著 Claude Code 會在更新後的發現問題清單中,將每個問題標記為已修正、已略過或無需變更。

77 77 


104在 effort 等級與旗標之後,Claude Code 會將該行的其餘部分讀取為審查目標。`ultra` 引數會改變這種解讀方式:104在 effort 等級與旗標之後,Claude Code 會將該行的其餘部分讀取為審查目標。`ultra` 引數會改變這種解讀方式:

105 105 

106* **使用 `ultra` 時**:Claude Code 會將單一字詞讀取為基底分支或 PR 編號。未指明分支或 PR 的較長文字會成為[附加到審查的備註](https://code.claude.com/docs/zh-TW/ultrareview.md#pass-a-request-in-plain-words)。`/code-review ultra check my auth changes` 會審查您目前的分支,而 Claude 會將發現的問題與您的備註相關聯。106* **使用 `ultra` 時**:Claude Code 會將單一字詞讀取為基底分支或 PR 編號。未指明分支或 PR 的較長文字會成為[附加到審查的備註](https://code.claude.com/docs/zh-TW/ultrareview.md#pass-a-request-in-plain-words)。`/code-review ultra check my auth changes` 會審查您目前的分支,而 Claude 會將發現的問題與您的備註相關聯。

107* **未使用 `ultra` 時**:剩餘的所有內容都是審查目標,即使它以另一個命令名稱開頭也一樣。`/code-review /fix-issue 123` 會以 `/fix-issue 123` 作為目標文字進行審查,而不是將 `/fix-issue` 載入為第二個[堆疊的 skill](https://code.claude.com/docs/zh-TW/skills.md#stack-several-skills-in-one-message)。在 v2.1.218 之前,堆疊在 `/code-review` 之後的命令會展開為其自己的 skill。107* **未使用 `ultra` 時**:剩餘的所有內容都是審查目標,即使它以另一個命令名稱開頭也一樣。`/code-review /fix-issue 123` 會以 `/fix-issue 123` 作為目標文字進行審查,而不是將 `/fix-issue` 載入為第二個[堆疊的 skill](https://code.claude.com/docs/zh-TW/skills.md#stack-several-skills-in-one-message)。

108 108 

109## 在前景執行109## 在前景執行

110 110 


114* 將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`,這也會關閉其他背景任務功能114* 將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/zh-TW/env-vars) 設為 `1`,這也會關閉其他背景任務功能

115* 在先前的審查仍在進行時,再次執行 `/code-review`115* 在先前的審查仍在進行時,再次執行 `/code-review`

116 116 

117在 v2.1.218 之前,審查會在您的對話中執行。

118 

119## 讓 Claude 啟動審查117## 讓 Claude 啟動審查

120 118 

121Claude 可以自行啟動 `/code-review`,無需您輸入命令:119Claude 可以自行啟動 `/code-review`,無需您輸入命令:

commands.md +3 −3

Details

37* **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)**:一個隨附 skill。它的運作方式與您自己編寫的 skill 相同:一個交給 Claude 的提示詞。37* **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)**:一個隨附 skill。它的運作方式與您自己編寫的 skill 相同:一個交給 Claude 的提示詞。

38 * `/verify` 僅在您調用時運行。在 v2.1.215 之前,Claude 也可以自行運行 `/verify`。38 * `/verify` 僅在您調用時運行。在 v2.1.215 之前,Claude 也可以自行運行 `/verify`。

39* **[Workflow](https://code.claude.com/docs/zh-TW/workflows.md#bundled-workflows)**:一個隨附的[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md),可將工作分散到多個 subagent 並在背景運行。39* **[Workflow](https://code.claude.com/docs/zh-TW/workflows.md#bundled-workflows)**:一個隨附的[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md),可將工作分散到多個 subagent 並在背景運行。

40 * `/deep-research` 僅在您調用時運行。在 v2.1.218 之前,Claude 也可以自行啟動它。40 * `/deep-research` 僅在您調用時運行。

41 41 

42要添加您自己的命令,請參閱 [skill](https://code.claude.com/docs/zh-TW/skills.md)。42要添加您自己的命令,請參閱 [skill](https://code.claude.com/docs/zh-TW/skills.md)。

43 43 


54| `/agents` | 列印提醒以要求 Claude 建立或管理 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md),或直接編輯 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本上,打開用於建立和管理 subagent 設定的互動式介面 |54| `/agents` | 列印提醒以要求 Claude 建立或管理 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md),或直接編輯 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本上,打開用於建立和管理 subagent 設定的互動式介面 |

55| `/artifact-capabilities` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 載入已發佈 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md) 可以使用的執行時功能的參考,例如[呼叫您的連接器](https://code.claude.com/docs/zh-TW/artifacts.md#pull-live-data-with-mcp-connectors)或[提供檔案下載](https://code.claude.com/docs/zh-TW/artifacts.md#offer-a-file-download),包括您的帳戶擁有的功能。Claude 通常在建立使用其中一個的頁面前自行載入它。在 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#availability) 可用的地方可用 |55| `/artifact-capabilities` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 載入已發佈 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md) 可以使用的執行時功能的參考,例如[呼叫您的連接器](https://code.claude.com/docs/zh-TW/artifacts.md#pull-live-data-with-mcp-connectors)或[提供檔案下載](https://code.claude.com/docs/zh-TW/artifacts.md#offer-a-file-download),包括您的帳戶擁有的功能。Claude 通常在建立使用其中一個的頁面前自行載入它。在 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#availability) 可用的地方可用 |

56| `/artifact-diagramming` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 為 Claude 在 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md) 中遵循的圖表載入指導:何時圖表有幫助、要繪製什麼以及如何編寫在淺色和深色主題中保持清晰的內聯 SVG。需要 Claude Code v2.1.221 或更新版本 |56| `/artifact-diagramming` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 為 Claude 在 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md) 中遵循的圖表載入指導:何時圖表有幫助、要繪製什麼以及如何編寫在淺色和深色主題中保持清晰的內聯 SVG。需要 Claude Code v2.1.221 或更新版本 |

57| `/artifacts` | 列出您擁有或與您共享的 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#find-an-artifact-again),然後將其附加到工作階段、在瀏覽器中打開它或複製其連結。在 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#availability) 可用的地方可用。需要 Claude Code v2.1.208 或更新版本;使用 `Enter` 附加需要 v2.1.216 |57| `/artifacts` | 列出您擁有或與您共享的 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#find-an-artifact-again),然後將其附加到工作階段、在瀏覽器中打開它或複製其連結。在 [artifact](https://code.claude.com/docs/zh-TW/artifacts.md#availability) 可用的地方可用 |

58| `/auto-mode-setup` | [從您的專案和最近的工作階段草擬 `autoMode.environment` 項目](https://code.claude.com/docs/zh-TW/auto-mode-config#generate-environment-entries),然後檢查草稿並將其保存到您的使用者設定。在 Pro、Max 或 Team 方案上,需要 Claude Code v2.1.228 或更新版本,在原生 Windows 上則需要 v2.1.233 或更新版本。在 Enterprise 方案上或使用 Claude Console API 金鑰時,需要 v2.1.283 或更新版本。如果此命令不存在,請參閱[`/auto-mode-setup` 傳回 "Unknown command"](https://code.claude.com/docs/zh-TW/auto-mode-config#auto-mode-setup-returns-unknown-command) |58| `/auto-mode-setup` | [從您的專案和最近的工作階段草擬 `autoMode.environment` 項目](https://code.claude.com/docs/zh-TW/auto-mode-config#generate-environment-entries),然後檢查草稿並將其保存到您的使用者設定。在 Pro、Max 或 Team 方案上,需要 Claude Code v2.1.228 或更新版本,在原生 Windows 上則需要 v2.1.233 或更新版本。在 Enterprise 方案上或使用 Claude Console API 金鑰時,需要 v2.1.283 或更新版本。如果此命令不存在,請參閱[`/auto-mode-setup` 傳回 "Unknown command"](https://code.claude.com/docs/zh-TW/auto-mode-config#auto-mode-setup-returns-unknown-command) |

59| `/autocompact [auto\|<tokens>]` | 設定自動壓縮視窗:在 Claude Code 自動壓縮之前上下文視窗有多滿。傳遞大小(例如 `500k`)或 `auto` 以返回為您的模型調整的視窗。Claude Code 將該值保存到使用者設定並將其應用於目前工作階段。有關接受的值以及覆寫它的內容,請參閱[設定自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window)。沒有引數時,打開顯示目前視窗的對話框。需要 Claude Code v2.1.221 或更新版本 |59| `/autocompact [auto\|<tokens>]` | 設定自動壓縮視窗:在 Claude Code 自動壓縮之前上下文視窗有多滿。傳遞大小(例如 `500k`)或 `auto` 以返回為您的模型調整的視窗。Claude Code 將該值保存到使用者設定並將其應用於目前工作階段。有關接受的值以及覆寫它的內容,請參閱[設定自動壓縮視窗](https://code.claude.com/docs/zh-TW/model-config.md#set-the-auto-compact-window)。沒有引數時,打開顯示目前視窗的對話框。需要 Claude Code v2.1.221 或更新版本 |

60| `/autofix-pr [prompt]` | 生成一個[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#auto-fix-pull-requests),監視目前分支的 PR 並在 CI 失敗或審查者留下評論時推送修復。使用 `gh pr view` 從您簽出的分支檢測打開的 PR;要監視不同的 PR,請先簽出其分支。預設情況下,雲端工作階段被告知修復每個 CI 失敗和審查評論;傳遞提示詞以給它不同的指示,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 和[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)的存取 |60| `/autofix-pr [prompt]` | 生成一個[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#auto-fix-pull-requests),監視目前分支的 PR 並在 CI 失敗或審查者留下評論時推送修復。使用 `gh pr view` 從您簽出的分支檢測打開的 PR;要監視不同的 PR,請先簽出其分支。預設情況下,雲端工作階段被告知修復每個 CI 失敗和審查評論;傳遞提示詞以給它不同的指示,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 和[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)的存取 |


85| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |85| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |

86| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](https://code.claude.com/docs/zh-TW/interactive-mode.md#review-changes-with-%2Fdiff) |86| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](https://code.claude.com/docs/zh-TW/interactive-mode.md#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 運行設定檢查,診斷安裝、設定、擴充功能和 `CLAUDE.md` 問題,並提出修復建議,Claude 會在您確認後應用這些修復。有關檢查涵蓋的內容,或改用 `prompt-audit` 審計您的指示,請參閱[使用 `/doctor` 檢查您的設定](https://code.claude.com/docs/zh-TW/skills#check-your-setup-with-/doctor)。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更新版本。別名:`/checkup` |87| `/doctor [prompt-audit [path]]` | **[Skill](https://code.claude.com/docs/zh-TW/skills.md#bundled-skills)。** 運行設定檢查,診斷安裝、設定、擴充功能和 `CLAUDE.md` 問題,並提出修復建議,Claude 會在您確認後應用這些修復。有關檢查涵蓋的內容,或改用 `prompt-audit` 審計您的指示,請參閱[使用 `/doctor` 檢查您的設定](https://code.claude.com/docs/zh-TW/skills#check-your-setup-with-/doctor)。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更新版本。別名:`/checkup` |

88| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 設定 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 列印它。`ultracode` 或 `ultracode on` 在目前等級為工作階段打開 [ultracode](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode),`ultracode off` 關閉它;[`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。`max` 僅限工作階段。`on` 和 `off` 引數以及保持目前等級需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,`/effort ultracode` 將工作階段設定為 `xhigh`,`/effort ultracode off` 失敗並出現 `Invalid argument`。在 Claude 回應時運行它,一旦您確認[快取警告](https://code.claude.com/docs/zh-TW/prompt-caching.md#changing-effort-level)(如果 Claude Code 顯示一個),Claude Code 會將新等級應用於該回合中的下一個請求。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能旗標決定是在回合中途運行命令還是將其排隊直到該回合完成,並始終在不[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](https://code.claude.com/docs/zh-TW/third-party-integrations.md)上。在 `-p` 中工作 |88| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 設定 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 列印它。`ultracode` 或 `ultracode on` 為工作階段打開 [ultracode](https://code.claude.com/docs/zh-TW/workflows.md#let-claude-decide-with-ultracode),`ultracode off` 關閉它;[`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。`max` 僅限工作階段。`on` 和 `off` 引數需要 Claude Code v2.1.284 或更新版本。如果您在 Claude 工作時運行 `/effort`,請參閱[新等級何時開始生效](https://code.claude.com/docs/zh-TW/model-config.md#when-a-new-effort-level-starts)。在 v2.1.205 或更新版本上可在 `-p` 中運作 |

89| `/exit` | 退出 CLI。在附加的[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |89| `/exit` | 退出 CLI。在附加的[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |

90| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |90| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |

91| `/fast [on\|off]` | 切換[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)開啟或關閉。在 Claude 回應時運行它,Claude Code 會切換快速模式而不等待該回合結束,儘管運行中的回合以其原始速度完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能旗標決定是在回合中途運行命令還是將其排隊直到該回合完成,並始終在不[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中排隊。在使用 `-p` 的非互動模式中可用性受限;請參閱[切換快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#toggle-fast-mode) |91| `/fast [on\|off]` | 切換[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)開啟或關閉。在 Claude 回應時運行它,Claude Code 會切換快速模式而不等待該回合結束,儘管運行中的回合以其原始速度完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能旗標決定是在回合中途運行命令還是將其排隊直到該回合完成,並始終在不[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中排隊。在使用 `-p` 的非互動模式中可用性受限;請參閱[切換快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md#toggle-fast-mode) |

computer-use.md +1 −1

Details

177| 功能 | Desktop | CLI |177| 功能 | Desktop | CLI |

178| :- | :- | :- |178| :- | :- | :- |

179| 平台 | macOS 和 Windows | 僅 macOS |179| 平台 | macOS 和 Windows | 僅 macOS |

180| 啟用 | **設定 > 此電腦 > 系統**中的切換 | 在 `/mcp` 中啟用 `computer-use` |180| 啟用 | 在[設定](https://code.claude.com/docs/zh-TW/desktop.md#enable-computer-use)中切換 | 在 `/mcp` 中啟用 `computer-use` |

181| 拒絕的應用程式清單 | 可在設定中設定 | 尚不可用 |181| 拒絕的應用程式清單 | 可在設定中設定 | 尚不可用 |

182| 自動取消隱藏切換 | 可選 | 始終開啟 |182| 自動取消隱藏切換 | 可選 | 始終開啟 |

183| Dispatch 整合 | Dispatch 生成的工作階段可以使用 computer use | 不適用 |183| Dispatch 整合 | Dispatch 生成的工作階段可以使用 computer use | 不適用 |

Details

70* [擴展 Claude Code](https://code.claude.com/docs/zh-TW/features-overview.md):何時使用 CLAUDE.md 與技能與規則與 hooks 與 MCP70* [擴展 Claude Code](https://code.claude.com/docs/zh-TW/features-overview.md):何時使用 CLAUDE.md 與技能與規則與 hooks 與 MCP

71* [存儲指令和記憶](https://code.claude.com/docs/zh-TW/memory.md):CLAUDE.md 層次結構和自動記憶71* [存儲指令和記憶](https://code.claude.com/docs/zh-TW/memory.md):CLAUDE.md 層次結構和自動記憶

72* [子代理](https://code.claude.com/docs/zh-TW/sub-agents.md):將研究委託給單獨的上下文視窗72* [子代理](https://code.claude.com/docs/zh-TW/sub-agents.md):將研究委託給單獨的上下文視窗

73* [最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md):將上下文作為您的主要約束進行管理73* [最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md#keep-cost-and-context-down):讓工作階段保持專注並降低成本

74* [提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md):哪些操作會使緩存的前綴失效74* [提示快取](https://code.claude.com/docs/zh-TW/prompt-caching.md):哪些操作會使緩存的前綴失效

75* [減少令牌使用](https://code.claude.com/docs/zh-TW/costs.md#reduce-token-usage):保持上下文使用低的策略75* [減少令牌使用](https://code.claude.com/docs/zh-TW/costs.md#reduce-token-usage):保持上下文使用低的策略

Details

174以下任一方式都可以顯示完整文字:174以下任一方式都可以顯示完整文字:

175 175 

176* 按 `Ctrl+O` 開啟[逐字稿檢視器](https://code.claude.com/docs/zh-TW/interactive-mode.md#transcript-viewer),並在寄件者的工作階段名稱下閱讀完整文字。176* 按 `Ctrl+O` 開啟[逐字稿檢視器](https://code.claude.com/docs/zh-TW/interactive-mode.md#transcript-viewer),並在寄件者的工作階段名稱下閱讀完整文字。

177 

178 如果 Claude 正在忙碌且尚未收到該訊息,請捲動到逐字稿的結尾,該訊息會列在 `Waiting to be delivered` 之下。需要 Claude Code v2.1.309 或更新版本。

179 

177* 在[全螢幕渲染](https://code.claude.com/docs/zh-TW/fullscreen.md#use-the-mouse)中,點擊省略了部分訊息的預覽行,即可就地展開。180* 在[全螢幕渲染](https://code.claude.com/docs/zh-TW/fullscreen.md#use-the-mouse)中,點擊省略了部分訊息的預覽行,即可就地展開。

181 

178* 在以 [`--verbose`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 啟動的工作階段中,Claude Code 會顯示完整文字而不是預覽。182* 在以 [`--verbose`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 啟動的工作階段中,Claude Code 會顯示完整文字而不是預覽。

179 183 

180預覽只會縮短您看到的內容。無論您是否展開它,Claude 都會讀取完整訊息。184預覽只會縮短您看到的內容。無論您是否展開它,Claude 都會讀取完整訊息。

desktop.md +31 −22

Details

69* **使用建議**:按 **Tab** 或**向右鍵**將其放入提示詞輸入框,視需要進行編輯,然後按 **Enter** 傳送。在接受建議之前按 **Enter** 不會傳送該建議。69* **使用建議**:按 **Tab** 或**向右鍵**將其放入提示詞輸入框,視需要進行編輯,然後按 **Enter** 傳送。在接受建議之前按 **Enter** 不會傳送該建議。

70* **撰寫您自己的提示詞**:直接開始輸入。建議只會在提示詞輸入框為空且沒有附加檔案時顯示。70* **撰寫您自己的提示詞**:直接開始輸入。建議只會在提示詞輸入框為空且沒有附加檔案時顯示。

71 71 

72前往**設定 > Claude Code**,並在**工作階段**下關閉**提示詞建議**,即可讓每個工作階段從下次啟動或繼續時起不再顯示建議。72在**設定 > Code** 或**設定 > Claude Code** 中關閉**提示詞建議**,即可停止顯示建議。每個工作階段會從下次啟動或繼續時起不再顯示建議。

73 73 

74### 將檔案和背景資訊新增至提示詞74### 將檔案和背景資訊新增至提示詞

75 75 


92| **接受編輯** | `acceptEdits` | Claude 自動接受檔案編輯和常見的檔案系統命令,例如 `mkdir`、`touch` 和 `mv`,但在執行其他終端機命令之前仍會詢問。當您信任檔案變更並想要更快速的迭代時,請使用此選項。 |92| **接受編輯** | `acceptEdits` | Claude 自動接受檔案編輯和常見的檔案系統命令,例如 `mkdir`、`touch` 和 `mv`,但在執行其他終端機命令之前仍會詢問。當您信任檔案變更並想要更快速的迭代時,請使用此選項。 |

93| **Plan** | `plan` | Claude 讀取檔案並執行命令以進行探索,然後提出計畫而不編輯您的原始程式碼。適合複雜的工作,您想先檢查方法。 |93| **Plan** | `plan` | Claude 讀取檔案並執行命令以進行探索,然後提出計畫而不編輯您的原始程式碼。適合複雜的工作,您想先檢查方法。 |

94| **自動** | `auto` | Claude 執行時不會出現例行提示;在 shell 命令和網路請求等操作執行之前,背景分類器會檢查它們是否與您的請求一致。當[自動模式可用](#auto-mode-availability)時出現;沒有單獨的設定切換。 |94| **自動** | `auto` | Claude 執行時不會出現例行提示;在 shell 命令和網路請求等操作執行之前,背景分類器會檢查它們是否與您的請求一致。當[自動模式可用](#auto-mode-availability)時出現;沒有單獨的設定切換。 |

95| **略過權限** | `bypassPermissions` | Claude 執行時不會出現權限提示,除了[任何模式都不會自動核准的操作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)、當 Claude [在外部網站上執行操作](#browse-external-sites)時的安全分類器,或桌面操作,例如刪除工作階段(但不包括[封存工作階段](#work-across-sessions))。相當於 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 方案上,在您的設定 → Claude Code 中的「允許略過權限模式」下啟用它;在 Team 和 Enterprise 方案上沒有設定切換,組織政策會控制它。僅在沙箱容器或虛擬機中使用此選項。 |95| **略過權限** | `bypassPermissions` | Claude 執行時不會出現權限提示,除了[任何模式都不會自動核准的操作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)、當 Claude [在外部網站上執行操作](#browse-external-sites)時的安全分類器,或桌面操作,例如刪除工作階段(但不包括[封存工作階段](#work-across-sessions))。相當於 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 方案上,請在**設定 > Code** 或**設定 > Claude Code** 中啟用「允許略過權限模式」。在 Team 和 Enterprise 方案上沒有設定切換,而是由組織政策控制它。僅在沙箱容器或虛擬機中使用此選項。 |

96 96 

97Code 標籤的早期版本將這些模式標記為「詢問權限」、「自動接受編輯」和「Plan 模式」。97Code 標籤的早期版本將這些模式標記為「詢問權限」、「自動接受編輯」和「Plan 模式」。

98 98 


100 100 

101> [!TIP]101> [!TIP]

102>102>

103> 在 Plan 中開始複雜的工作,讓 Claude 在進行變更之前規劃方法。一旦您核准計畫,切換至「接受編輯」或「手動」以執行它。請參閱[先探索,然後計畫,然後編碼](https://code.claude.com/docs/zh-TW/best-practices.md#explore-first-then-plan-then-code)以了解更多有關此工作流程的資訊。103> 在 Plan 中開始複雜的工作,讓 Claude 在進行變更之前規劃方法。一旦您核准計畫,切換至「接受編輯」或「手動」以執行它。請參閱 [plan mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 以了解更多有關此工作流程的資訊。

104 104 

105雲端工作階段支援「接受編輯」、「Plan」和「自動」。「接受編輯」對應於 `default` 模式:雲端工作階段預先核准檔案編輯,因此選擇器顯示「接受編輯」而不是「手動」。「略過權限」在雲端工作階段中不可用,包括[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中的工作階段。105雲端工作階段支援「接受編輯」、「Plan」和「自動」。「接受編輯」對應於 `default` 模式:雲端工作階段預先核准檔案編輯,因此選擇器顯示「接受編輯」而不是「手動」。「略過權限」在雲端工作階段中不可用,包括[自託管環境](https://code.claude.com/docs/zh-TW/self-hosted-environments)中的工作階段。

106 106 


133 133 

134Claude 根據您的專案建立初始伺服器設定。如果您的應用程式使用自訂開發命令,請編輯 `.claude/launch.json` 以符合您的設定。請參閱[設定預覽伺服器](#configure-preview-servers)以了解完整參考。134Claude 根據您的專案建立初始伺服器設定。如果您的應用程式使用自訂開發命令,請編輯 `.claude/launch.json` 以符合您的設定。請參閱[設定預覽伺服器](#configure-preview-servers)以了解完整參考。

135 135 

136若要清除「瀏覽器」已儲存的資料,請在「瀏覽器」窗格的 **⋮** 選單中選擇**清除瀏覽資料**。若要完全關閉「瀏覽器」,請在**設定 > Claude Code** 中關閉**瀏覽器工具**。136若要清除「瀏覽器」已儲存的資料,請在「瀏覽器」窗格的 **⋮** 選單中選擇**清除瀏覽資料**。若要完全關閉「瀏覽器」,請在**設定 > Code** 或**設定 > Claude Code** 中關閉**瀏覽器工具**。

137 137 

138### 瀏覽外部網站138### 瀏覽外部網站

139 139 


164 164 

165### 使用差異檢視檢查變更165### 使用差異檢視檢查變更

166 166 

167Claude 對您的程式碼進行變更後,差異檢視可讓您在建立 pull request 之前逐個檔案檢查修改。若要開啟差異檢視,請點擊[工作階段詳細資料面板](#see-session-details)中**變更**卡片上的行數,例如 `+12 -1`。您也可以點擊工作階段標題列中的**變更**。167Claude 對您的程式碼進行變更後,差異檢視可讓您在建立 pull request 之前逐個檔案檢查修改。若要開啟差異檢視,請點擊[工作階段詳細資料面板](#see-session-details)中**變更**卡片上的行數,例如 `+12 -1`。您也可以點擊工作階段標題列中的**變更**。雲端工作階段相對於基礎分支的差異可能會[遺漏尚未推送的變更](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view)。

168 168 

169若要對特定行進行評論,請點擊差異中的任何行以開啟評論框。輸入您的意見反應並按 **Enter** 鍵以新增評論。在多行新增評論後,一次提交所有評論:169若要對特定行進行評論,請將游標停留在某一行上,然後點擊其行號旁出現的 **+** 以開啟評論框。輸入您的意見反應並按 **Enter** 鍵以新增評論。在多行新增評論後,一次提交所有評論:

170 170 

171* **macOS**:按 **Cmd+Enter**171* **macOS**:按 **Cmd+Enter**

172* **Windows**:按 **Ctrl+Enter**172* **Windows**:按 **Ctrl+Enter**


194 * **如果儲存庫不允許自動合併**:**就緒時合併**無法開啟,因此請先在您的 [GitHub 儲存庫設定](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)中啟用自動合併194 * **如果儲存庫不允許自動合併**:**就緒時合併**無法開啟,因此請先在您的 [GitHub 儲存庫設定](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)中啟用自動合併

195* **[較早的版面配置](#check-which-layout-you-have)**:工作階段有 pull request 後,點擊其狀態列上的 **CI**。195* **[較早的版面配置](#check-which-layout-you-have)**:工作階段有 pull request 後,點擊其狀態列上的 **CI**。

196 196 

197若要在 PR 合併或關閉後自動封存工作階段,請在**設定 > Claude Code** 中開啟[自動封存](#archive-a-session)。197若要在 PR 合併或關閉後自動封存工作階段,請在**設定 > Code** 或**設定 > Claude Code** 中開啟[自動封存](#archive-a-session)。

198 198 

199> [!NOTE]199> [!NOTE]

200>200>


275* **Cmd+Ctrl**:按 **Ctrl+Alt**275* **Cmd+Ctrl**:按 **Ctrl+Alt**

276* **Cmd**:按 **Ctrl**276* **Cmd**:按 **Ctrl**

277 277 

278工作階段循環、終端機切換和檢視模式切換在每個平台上都使用 **Ctrl**。278以 `Ctrl` 開頭的快捷鍵在每個平台上都相同。

279 279 

280| 快捷鍵 | 操作 |280| 快捷鍵 | 操作 |

281| - | - |281| - | - |


284| `Cmd` `Option` `1`–`9` | 在[目前佈局](#check-which-layout-you-have)的新工作階段畫面中,選擇環境 |284| `Cmd` `Option` `1`–`9` | 在[目前佈局](#check-which-layout-you-have)的新工作階段畫面中,選擇環境 |

285| `Cmd` `Option` `0` | 在目前佈局的新工作階段畫面中,開啟 [**New environment** 對話框](#create-a-saved-environment) |285| `Cmd` `Option` `0` | 在目前佈局的新工作階段畫面中,開啟 [**New environment** 對話框](#create-a-saved-environment) |

286| `Cmd` `W` | 關閉工作階段 |286| `Cmd` `W` | 關閉工作階段 |

287| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | 下一個或上一個工作階段 |287| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | 在工作階段之間切換 |

288| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | 下一個或上一個工作階段 |288| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | 下一個或上一個工作階段 |

289| `Esc` | 停止 Claude 的回應 |289| `Esc` | 停止 Claude 的回應 |

290| `Tab` / `Right arrow` | 在空白的提示詞輸入框中[接受建議的提示詞](#accept-a-suggested-prompt) |290| `Tab` / `Right arrow` | 在空白的提示詞輸入框中[接受建議的提示詞](#accept-a-suggested-prompt) |


352 352 

353**2. 開啟切換**353**2. 開啟切換**

354 354 

355在桌面應用程式中,前往 **Settings > This computer > System**。在 **Computer use** 下,開啟 **Enable computer use**。在 Windows 上,切換立即生效,設定完成。在 macOS 上,繼續下一步。355在桌面應用程式中,開啟 **Settings**,然後:

356 

357* **如果 Settings 選單列出 This computer**:前往 **This computer > System**

358* **否則**:前往 **Capabilities**

359 

360在 **Computer use** 下,開啟 **Enable computer use**:

361 

362* **Windows**:切換立即生效,設定完成

363* **macOS**:繼續下一步

356 364 

357如果您看不到切換,請確認您在 macOS 或 Windows 上使用 Pro 或 Max 計畫,然後更新並重新啟動應用程式。365如果您看不到切換,請確認您在 macOS 或 Windows 上使用 Pro 或 Max 計畫,然後更新並重新啟動應用程式。

358 366 


379 387 

380具有廣泛影響力的應用程式(如終端機、Finder 或檔案總管,以及「系統設定」或「設定」)在提示中顯示額外警告,以便您知道批准它們會授予什麼。388具有廣泛影響力的應用程式(如終端機、Finder 或檔案總管,以及「系統設定」或「設定」)在提示中顯示額外警告,以便您知道批准它們會授予什麼。

381 389 

382**Settings > This computer > System** 中的 **Computer use** 區段包含以下選項:390在 Settings 中,您[開啟電腦使用](#enable-computer-use)所在的 **Computer use** 區段包含以下選項:

383 391 

384* **Denied apps**:在此處新增應用程式以拒絕它們而不提示。Claude 可能仍會透過允許應用程式中的操作間接影響被拒絕的應用程式,但它無法直接與被拒絕的應用程式互動。392* **Denied apps**:在此處新增應用程式以拒絕它們而不提示。Claude 可能仍會透過允許應用程式中的操作間接影響被拒絕的應用程式,但它無法直接與被拒絕的應用程式互動。

385* **Unhide apps when Claude finishes**:當電腦使用未在背景執行時,Claude 工作時會隱藏您的其他視窗,以便它僅與批准的應用程式互動。當 Claude 完成時,隱藏的視窗會被恢復,除非您關閉此設定。393* **Unhide apps when Claude finishes**:當電腦使用未在背景執行時,Claude 工作時會隱藏您的其他視窗,以便它僅與批准的應用程式互動。當 Claude 完成時,隱藏的視窗會被恢復,除非您關閉此設定。


390 398 

391### 使用工作階段並行工作399### 使用工作階段並行工作

392 400 

393點擊側邊欄中的 **+ New**,或在 macOS 上按 **Cmd+N** 或在 Windows 上按 **Ctrl+N**,以並行處理多個任務。按 **Ctrl+Tab** 和 **Ctrl+Shift+Tab** 以循環瀏覽側邊欄中的工作階段。401點擊側邊欄中的 **+ New**,或在 macOS 上按 **Cmd+N** 或在 Windows 上按 **Ctrl+N**,以並行處理多個任務。按 **Ctrl+Tab** 和 **Ctrl+Shift+Tab** 以在工作階段之間切換。

394 402 

395您也可以在目前工作階段旁邊或在其專屬的視窗中開啟第二個工作階段:403您也可以在目前工作階段旁邊或在其專屬的視窗中開啟第二個工作階段:

396 404 


401 409 

402#### 在專屬的 worktree 中執行工作階段410#### 在專屬的 worktree 中執行工作階段

403 411 

404在屬於 Git 儲存庫的專案中,請在啟動工作階段之前開啟 **Worktree**,讓工作階段在自己的 [Git worktree](https://code.claude.com/docs/zh-TW/worktrees.md)(專案的隔離副本)中執行。預設情況下,**Worktree** 為關閉狀態,Claude 會直接在專案資料夾中工作。點擊[提示詞輸入框下方那一列](#start-a-session)中的專案資料夾控制項,然後開啟 **Worktree**。412在屬於 Git 儲存庫的專案中,請在啟動工作階段之前開啟 **Worktree**,讓工作階段在自己的 [Git worktree](https://code.claude.com/docs/zh-TW/worktrees.md)(專案的隔離副本)中執行。預設情況下,**Worktree** 為關閉狀態,Claude 會直接在專案資料夾中工作。在[目前的版面配置](#check-which-layout-you-have)上,開啟[提示詞輸入框下方那一列](#start-a-session)中的 **Worktree** 按鈕。

405 413 

406* **使用[已儲存的環境](#create-a-saved-environment)時**:在建立或編輯環境時設定 **Worktree**414* **使用[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)時**:如果提示詞輸入框下方那一列顯示專案資料夾控制項,但沒有 **Worktree** 按鈕,請點擊該控制項並開啟 **Worktree**

415* **作為[已儲存的本機或 SSH 環境](#create-a-saved-environment)的預設值**:在建立或編輯環境時設定 **Worktree**

407* **[較早的版面配置](#check-which-layout-you-have)**:選取提示詞輸入框上方、分支名稱旁邊的 **worktree** 核取方塊416* **[較早的版面配置](#check-which-layout-you-have)**:選取提示詞輸入框上方、分支名稱旁邊的 **worktree** 核取方塊

408 417 

409Worktrees 預設儲存在 `<project-root>/.claude/worktrees/` 中。若要改為將其儲存在自訂目錄中:418Worktrees 預設儲存在 `<project-root>/.claude/worktrees/` 中。若要改為將其儲存在自訂目錄中:

410 419 

411* **本機工作階段**:在 **Settings > Claude Code** 中設定 **Worktree location**420* **本機工作階段**:在 **Settings > Code** 或 **Settings > Claude Code** 中設定 **Worktree location**

412* **SSH 工作階段**:在 [SSH 連線](#choose-where-ssh-session-worktrees-go)上設定 **Worktree folder**421* **SSH 工作階段**:在 [SSH 連線](#choose-where-ssh-session-worktrees-go)上設定 **Worktree folder**

413 422 

414您也可以在 **Settings > Claude Code** 中設定 **Branch prefix**。Desktop 會將其加在每個 worktree 分支名稱前面,這對於保持 Claude 建立的分支井然有序很有用。423您也可以在 **Settings > Code** 或 **Settings > Claude Code** 中設定 **Branch prefix**。Desktop 會將其加在每個 worktree 分支名稱前面,這對於保持 Claude 建立的分支井然有序很有用。

415 424 

416若要在新 worktrees 中包含 gitignored 檔案(如 `.env`),請在您的專案根目錄中建立 [`.worktreeinclude` 檔案](https://code.claude.com/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees)。請參閱 [worktree 與主要簽出共用的內容](https://code.claude.com/docs/zh-TW/worktrees.md#what-worktrees-share-with-the-main-checkout),了解 worktree 工作階段從何處讀取專案設定、hook 和 skill。425若要在新 worktrees 中包含 gitignored 檔案(如 `.env`),請在您的專案根目錄中建立 [`.worktreeinclude` 檔案](https://code.claude.com/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees)。請參閱 [worktree 與主要簽出共用的內容](https://code.claude.com/docs/zh-TW/worktrees.md#what-worktrees-share-with-the-main-checkout),了解 worktree 工作階段從何處讀取專案設定、hook 和 skill。

417 426 


430 439 

431在存檔 worktree 中有未提交變更的工作階段之前,請參閱[在工作階段存檔時保留未提交的變更](#keep-uncommitted-changes-when-a-session-is-archived)。若要存檔工作階段,請將滑鼠懸停在側邊欄中的該工作階段上,開啟其選單,然後選擇 **Archive**。該工作階段會移至您的[已存檔工作階段](#organize-and-find-sessions)。440在存檔 worktree 中有未提交變更的工作階段之前,請參閱[在工作階段存檔時保留未提交的變更](#keep-uncommitted-changes-when-a-session-is-archived)。若要存檔工作階段,請將滑鼠懸停在側邊欄中的該工作階段上,開啟其選單,然後選擇 **Archive**。該工作階段會移至您的[已存檔工作階段](#organize-and-find-sessions)。

432 441 

433若要讓工作階段在其 pull request 合併或關閉時自動存檔,請在 **Settings > Claude Code** 中開啟 **Auto-archive after PR merge or close**。雲端工作階段和仍在執行中的工作階段不會自動存檔。442若要讓工作階段在其 pull request 合併或關閉時自動存檔,請在 **Settings > Code** 或 **Settings > Claude Code** 中開啟 **Auto-archive after PR merge or close**。雲端工作階段和仍在執行中的工作階段不會自動存檔。

434 443 

435#### 在工作階段存檔時保留未提交的變更444#### 在工作階段存檔時保留未提交的變更

436 445 


527本機工作階段會在您為其開啟 Remote Control 時連線,或在啟動時自動連線:536本機工作階段會在您為其開啟 Remote Control 時連線,或在啟動時自動連線:

528 537 

529* **您為該工作階段開啟**:使用該工作階段的 **Remote Control** 開關,或在其提示詞輸入框中輸入 `/remote-control`。538* **您為該工作階段開啟**:使用該工作階段的 **Remote Control** 開關,或在其提示詞輸入框中輸入 `/remote-control`。

530* **在啟動時連線**:當 **Settings > Claude Code** 中的 **Connect new sessions to Remote Control** 開啟時,新工作階段會自動連線。如果您從未變更該設定,Desktop 會遵循您使用者設定或受管設定中的 [`remoteControlAtStartup`](https://code.claude.com/docs/zh-TW/settings-reference#remotecontrolatstartup),其次是您組織的預設值。539* **在啟動時連線**:當 **Settings > Code** 或 **Settings > Claude Code** 中的 **Connect new sessions to Remote Control** 開啟時,新工作階段會自動連線。如果您從未變更該設定,Desktop 會遵循您使用者設定或受管設定中的 [`remoteControlAtStartup`](https://code.claude.com/docs/zh-TW/settings-reference#remotecontrolatstartup),其次是您組織的預設值。

531 540 

532若要查看工作階段是否已連線,請查看其[工作階段詳細資料面板](#see-session-details)中 **Environment** 卡片上的 **Remote Control** 開關。541若要查看工作階段是否已連線,請查看其[工作階段詳細資料面板](#see-session-details)中 **Environment** 卡片上的 **Remote Control** 開關。

533 542 

534若要讓工作階段不出現在您的其他裝置上,請在您需要的層級關閉 Remote Control:543若要讓工作階段不出現在您的其他裝置上,請在您需要的層級關閉 Remote Control:

535 544 

536* **單一工作階段**:關閉其 **Remote Control** 開關。在啟動時即已連線的工作階段中,輸入 `/remote-control` 會讓 Remote Control 保持開啟,並顯示 `Remote Control is already on. This session connected automatically when it started.`。點擊該行上的 **Turn off** 以中斷連線。545* **單一工作階段**:關閉其 **Remote Control** 開關。在啟動時即已連線的工作階段中,輸入 `/remote-control` 會讓 Remote Control 保持開啟,並顯示 `Remote Control is already on. This session connected automatically when it started.`。點擊該行上的 **Turn off** 以中斷連線。

537* **此電腦上的新 Desktop 工作階段**:在 **Settings > Claude Code** 中關閉 **Connect new sessions to Remote Control**。如果它已顯示為關閉,請先將其開啟再關閉,讓 Desktop 儲存您的選擇。儲存後,它會優先於 `remoteControlAtStartup` 和預設值。546* **此電腦上的新 Desktop 工作階段**:在 **Settings > Code** 或 **Settings > Claude Code** 中關閉 **Connect new sessions to Remote Control**。如果它已顯示為關閉,請先將其開啟再關閉,讓 Desktop 儲存您的選擇。儲存後,它會優先於 `remoteControlAtStartup` 和預設值。

538* **此電腦上的任何工作階段,包括 CLI**:在 `~/.claude/settings.json` 中將 [`disableRemoteControl`](https://code.claude.com/docs/zh-TW/settings-reference#disableremotecontrol) 設定為 `true`,以阻止工作階段連線。在您儲存該檔案時已連線的工作階段會保持連線,直到您為其關閉 Remote Control。547* **此電腦上的任何工作階段,包括 CLI**:在 `~/.claude/settings.json` 中將 [`disableRemoteControl`](https://code.claude.com/docs/zh-TW/settings-reference#disableremotecontrol) 設定為 `true`,以阻止工作階段連線。在您儲存該檔案時已連線的工作階段會保持連線,直到您為其關閉 Remote Control。

539 548 

540若要隱藏已出現在您其他裝置上的工作階段,請在 Desktop 中將其存檔。Desktop 也會存檔該工作階段的 Remote Control 副本,使其離開那些裝置上的預設工作階段清單。若要在那裡檢視或刪除它,請參閱[存檔工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#archive-sessions)。549若要隱藏已出現在您其他裝置上的工作階段,請在 Desktop 中將其存檔。Desktop 也會存檔該工作階段的 Remote Control 副本,使其離開那些裝置上的預設工作階段清單。若要在那裡檢視或刪除它,請參閱[存檔工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#archive-sessions)。


576> * **Connectors 在 WSL 工作階段中呈現灰色**:請參閱[如果終端機或連接器無法使用](https://code.claude.com/docs/zh-TW/desktop-wsl.md#check-for-the-terminal-and-connectors)585> * **Connectors 在 WSL 工作階段中呈現灰色**:請參閱[如果終端機或連接器無法使用](https://code.claude.com/docs/zh-TW/desktop-wsl.md#check-for-the-terminal-and-connectors)

577> * **雲端工作階段**:請參閱[連接器如何連至 Claude Code](https://code.claude.com/docs/zh-TW/mcp.md#how-connectors-reach-claude-code)586> * **雲端工作階段**:請參閱[連接器如何連至 Claude Code](https://code.claude.com/docs/zh-TW/mcp.md#how-connectors-reach-claude-code)

578 587 

579連接後,Claude 可以讀取您的日曆、傳送訊息、建立問題,並直接與您的工具互動。您可以詢問 Claude 在您的工作階段中設定了哪些連接器。若要管理或中斷連接器,請在桌面應用程式中前往 **Settings > Connectors**。588連接後,Claude 可以讀取您的日曆、傳送訊息、建立問題,並直接與您的工具互動。您可以詢問 Claude 在您的工作階段中設定了哪些連接器。若要管理或中斷連接器,請點擊側邊欄中的 **Customize** 並開啟 **Connectors**。

580 589 

581對於 Connectors 中未列出的整合,請透過[設定檔](https://code.claude.com/docs/zh-TW/mcp.md#installing-mcp-servers)手動新增 MCP 伺服器。您也可以[建立自訂連接器](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp)。590對於 Connectors 中未列出的整合,請透過[設定檔](https://code.claude.com/docs/zh-TW/mcp.md#installing-mcp-servers)手動新增 MCP 伺服器。您也可以[建立自訂連接器](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp)。

582 591 


2028| `--model sonnet` | 提示詞方塊下方列中的模型選擇器 |2037| `--model sonnet` | 提示詞方塊下方列中的模型選擇器 |

2029| `--resume`, `--continue` | 點擊側邊欄中的工作階段,或在提示詞方塊中輸入 `/resume` 以取得您從 CLI 啟動的工作階段 |2038| `--resume`, `--continue` | 點擊側邊欄中的工作階段,或在提示詞方塊中輸入 `/resume` 以取得您從 CLI 啟動的工作階段 |

2030| `--permission-mode` | 提示詞方塊下方列中的模式選擇器 |2039| `--permission-mode` | 提示詞方塊下方列中的模式選擇器 |

2031| `--dangerously-skip-permissions` | 略過權限模式。在 Pro 和 Max 方案上,在「設定」→「Claude Code」→「允許略過權限模式」中啟用它;在 Team 和 Enterprise 方案上,組織政策控制它 |2040| `--dangerously-skip-permissions` | 略過權限模式。在 Pro 和 Max 方案上,在 **設定 > Code** 或 **設定 > Claude Code** 中啟用「允許略過權限模式」;在 Team 和 Enterprise 方案上,組織政策控制它 |

2032| `--add-dir` | 在本機和 SSH 工作階段中[將資料夾新增至工作階段](#add-folders-to-a-session),或在雲端工作階段中選擇[多個儲存庫](#run-long-running-tasks-in-the-cloud) |2041| `--add-dir` | 在本機和 SSH 工作階段中[將資料夾新增至工作階段](#add-folders-to-a-session),或在雲端工作階段中選擇[多個儲存庫](#run-long-running-tasks-in-the-cloud) |

2033| `--allowedTools`, `--disallowedTools` | 沒有各別工作階段等效項。[設定檔](https://code.claude.com/docs/zh-TW/settings.md)中的權限規則仍然適用。 |2042| `--allowedTools`, `--disallowedTools` | 沒有各別工作階段等效項。[設定檔](https://code.claude.com/docs/zh-TW/settings.md)中的權限規則仍然適用。 |

2034| `--verbose` | [Verbose 檢視模式](#switch-view-modes) |2043| `--verbose` | [Verbose 檢視模式](#switch-view-modes) |


2088* **Agent teams**:協調的團隊,其中 Claude 作為團隊組長從共用任務清單中指派任務給隊員,在 [CLI](https://code.claude.com/docs/zh-TW/agent-teams.md) 中可用,不在 Desktop 中。若要在一個工作階段內進行多 agent 工作,請使用 [dynamic workflows](https://code.claude.com/docs/zh-TW/workflows.md),它們在 Desktop 中執行;Claude 也可以[直接傳遞訊息和管理您的其他工作階段](#work-across-sessions)。2097* **Agent teams**:協調的團隊,其中 Claude 作為團隊組長從共用任務清單中指派任務給隊員,在 [CLI](https://code.claude.com/docs/zh-TW/agent-teams.md) 中可用,不在 Desktop 中。若要在一個工作階段內進行多 agent 工作,請使用 [dynamic workflows](https://code.claude.com/docs/zh-TW/workflows.md),它們在 Desktop 中執行;Claude 也可以[直接傳遞訊息和管理您的其他工作階段](#work-across-sessions)。

2089* **Terminal-dialog 命令**:在終端機中開啟互動式面板的內建命令,在 Code 標籤中的行為不同。直接編輯[設定檔](https://code.claude.com/docs/zh-TW/settings.md)以管理權限規則和設定,或從獨立 CLI 執行命令。2098* **Terminal-dialog 命令**:在終端機中開啟互動式面板的內建命令,在 Code 標籤中的行為不同。直接編輯[設定檔](https://code.claude.com/docs/zh-TW/settings.md)以管理權限規則和設定,或從獨立 CLI 執行命令。

2090 * 沒有引數形式的命令,例如 `/permissions`,回覆 `isn't available in this environment`。2099 * 沒有引數形式的命令,例如 `/permissions`,回覆 `isn't available in this environment`。

2091 * `/config` 開啟 **設定 > Claude Code**。2100 * `/config` 開啟 **設定 > Code** 或 **設定 > Claude Code**。

2092 2101 

2093## 疑難排解2102## 疑難排解

2094 2103 

Details

135 135 

136本機排程任務在您的機器上執行。Desktop 在應用程式開啟時每分鐘檢查一次排程,並在任務到期時啟動新的工作階段,獨立於您開啟的任何手動工作階段。每個任務在排程時間後會有幾分鐘的小延遲,以錯開 API 流量。延遲是確定性的:同一任務始終在相同的偏移量處啟動。136本機排程任務在您的機器上執行。Desktop 在應用程式開啟時每分鐘檢查一次排程,並在任務到期時啟動新的工作階段,獨立於您開啟的任何手動工作階段。每個任務在排程時間後會有幾分鐘的小延遲,以錯開 API 流量。延遲是確定性的:同一任務始終在相同的偏移量處啟動。

137 137 

138任務只有在 desktop 應用程式執行且您的電腦處於喚醒狀態時才會執行。如果您的電腦在排程時間內進入睡眠狀態,該執行會被跳過。若要防止閒置睡眠,請在 **Settings > This computer > System** 中啟用 **Keep computer awake**。關閉筆記型電腦蓋仍會使其進入睡眠狀態。138任務只有在 desktop 應用程式執行且您的電腦處於喚醒狀態時才會執行。如果您的電腦在排程時間內進入睡眠狀態,該執行會被跳過。若要防止閒置睡眠,請在 **Settings > Desktop app** 或 **Settings > This computer > System** 中啟用 **Keep computer awake**。關閉筆記型電腦蓋仍會使其進入睡眠狀態。

139 139 

140> [!NOTE]140> [!NOTE]

141>141>

env-vars.md +2 −0

Details

291| `CLAUDE_CODE_ENABLE_TASKS` | 選擇 Claude Code 在[具備這些工具的工作階段](https://code.claude.com/docs/zh-TW/tools-reference.md#task-tool-availability)中提供哪些任務追蹤工具。預設情況下,Claude Code 提供 Task 工具 `TaskCreate`、`TaskUpdate`、`TaskGet` 與 `TaskList`。設為 `0` 則改為取得舊版 `TodoWrite` 工具。請參閱[任務清單](https://code.claude.com/docs/zh-TW/interactive-mode.md#task-list) |291| `CLAUDE_CODE_ENABLE_TASKS` | 選擇 Claude Code 在[具備這些工具的工作階段](https://code.claude.com/docs/zh-TW/tools-reference.md#task-tool-availability)中提供哪些任務追蹤工具。預設情況下,Claude Code 提供 Task 工具 `TaskCreate`、`TaskUpdate`、`TaskGet` 與 `TaskList`。設為 `0` 則改為取得舊版 `TodoWrite` 工具。請參閱[任務清單](https://code.claude.com/docs/zh-TW/interactive-mode.md#task-list) |

292| `CLAUDE_CODE_ENABLE_TELEMETRY` | 設為 `1` 以啟用 OpenTelemetry 資料收集,用於指標與日誌。設定 OTel 匯出器之前必須先設定此變數。請在您的 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) |292| `CLAUDE_CODE_ENABLE_TELEMETRY` | 設為 `1` 以啟用 OpenTelemetry 資料收集,用於指標與日誌。設定 OTel 匯出器之前必須先設定此變數。請在您的 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) |

293| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 設為 `1` 可在每個模型上取得任務追蹤工具。若未設定,Claude Code 預設只會在 [Task 工具可用性](https://code.claude.com/docs/zh-TW/tools-reference.md#task-tool-availability)下列出的模型上提供這些工具。`CLAUDE_CODE_ENABLE_TASKS` 仍會決定使用 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更新版本 |293| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 設為 `1` 可在每個模型上取得任務追蹤工具。若未設定,Claude Code 預設只會在 [Task 工具可用性](https://code.claude.com/docs/zh-TW/tools-reference.md#task-tool-availability)下列出的模型上提供這些工具。`CLAUDE_CODE_ENABLE_TASKS` 仍會決定使用 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更新版本 |

294| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | 設為 `1` 以在 `bypassPermissions` 模式下[不經提示即執行危險的 `rm` 命令](https://code.claude.com/docs/zh-TW/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode),這會移除針對破壞性刪除的安全提示。連結的章節列出此設定不會生效的情況。[請在啟動 Claude Code 的環境中設定它](#set-variables-in-your-shell),因為 Claude Code [會忽略設定 `env` 區塊中的此變數](https://code.claude.com/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)。需要 Claude Code v2.1.311 或更新版本 |

294| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查詢迴圈進入閒置後、自動結束前要等待的時間(毫秒)。適用於使用 SDK 模式的自動化工作流程與指令碼 |295| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查詢迴圈進入閒置後、自動結束前要等待的時間(毫秒)。適用於使用 SDK 模式的自動化工作流程與指令碼 |

295| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 設為 `1` 以啟用 [agent team](https://code.claude.com/docs/zh-TW/agent-teams.md)。agent team 為實驗性功能,預設為停用 |296| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 設為 `1` 以啟用 [agent team](https://code.claude.com/docs/zh-TW/agent-teams.md)。agent team 為實驗性功能,預設為停用 |

296| `CLAUDE_CODE_EXTRA_BODY` | 要合併至每個 API 請求主體最上層的 JSON 物件。適用於傳遞 Claude Code 未直接公開的供應商專屬參數。在 shell 中匯出的值也會套用至您以 `claude agents` 或 `--bg` 分派的[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)。在 v2.1.206 之前,背景工作階段會忽略 shell 匯出的值,並使用背景監督程序所繼承的副本 |297| `CLAUDE_CODE_EXTRA_BODY` | 要合併至每個 API 請求主體最上層的 JSON 物件。適用於傳遞 Claude Code 未直接公開的供應商專屬參數。在 shell 中匯出的值也會套用至您以 `claude agents` 或 `--bg` 分派的[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)。在 v2.1.206 之前,背景工作階段會忽略 shell 匯出的值,並使用背景監督程序所繼承的副本 |


368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 設為 `1` 可在上一個工作階段於回合中途結束時自動繼續。用於 SDK 模式,讓模型無需 SDK 重新傳送提示詞即可繼續。若要關閉,請取消設定此變數或將其設為 `0`。關於 VS Code 聊天面板,請參閱[重新載入後繼續對話](https://code.claude.com/docs/zh-TW/vs-code.md#continue-conversations-after-a-reload) |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 設為 `1` 可在上一個工作階段於回合中途結束時自動繼續。用於 SDK 模式,讓模型無需 SDK 重新傳送提示詞即可繼續。若要關閉,請取消設定此變數或將其設為 `0`。關於 VS Code 聊天面板,請參閱[重新載入後繼續對話](https://code.claude.com/docs/zh-TW/vs-code.md#continue-conversations-after-a-reload) |

369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 對於在回合中途結束的工作階段,若要在繼續時自動接續,其最後一則逐字稿訊息的最大存在時間(毫秒)。當最後一則訊息比此界限更舊時,Claude Code 會略過 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自動繼續及其 `CLAUDE_CODE_RESUME_PROMPT` 接續訊息,且工作階段會以閒置狀態啟動,讓您明確地繼續。未設定或設為 `0` 表示不設界限,但某些回合只會在其最後一則訊息後六小時內繼續,例如以 API 錯誤結束的回合。正值會為每個回合設定界限,包括那些回合;負值或非數值會套用一小時的界限。長時間執行之 agent 的產生指令碼可以設定此變數,讓針對舊逐字稿的重新啟動不會重新執行過時的提示詞。當 Claude Code 重新啟動從互動式工作階段繼承對話的已當機 [agent view](https://code.claude.com/docs/zh-TW/agent-view.md) 工作階段時,會自行設定一小時的界限。需要 Claude Code v2.1.211 或更新版本 |370| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 對於在回合中途結束的工作階段,若要在繼續時自動接續,其最後一則逐字稿訊息的最大存在時間(毫秒)。當最後一則訊息比此界限更舊時,Claude Code 會略過 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自動繼續及其 `CLAUDE_CODE_RESUME_PROMPT` 接續訊息,且工作階段會以閒置狀態啟動,讓您明確地繼續。未設定或設為 `0` 表示不設界限,但某些回合只會在其最後一則訊息後六小時內繼續,例如以 API 錯誤結束的回合。正值會為每個回合設定界限,包括那些回合;負值或非數值會套用一小時的界限。長時間執行之 agent 的產生指令碼可以設定此變數,讓針對舊逐字稿的重新啟動不會重新執行過時的提示詞。當 Claude Code 重新啟動從互動式工作階段繼承對話的已當機 [agent view](https://code.claude.com/docs/zh-TW/agent-view.md) 工作階段時,會自行設定一小時的界限。需要 Claude Code v2.1.211 或更新版本 |

370| `CLAUDE_CODE_RESUME_PROMPT` | 覆寫當 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 接續中斷的回合而非重新傳送其提示詞時,或當您以 `-p` 繼續[延後的工具呼叫](https://code.claude.com/docs/zh-TW/hooks.md#defer-a-tool-call-for-later)時,Claude Code 傳送給 Claude 的接續訊息。預設為 `Continue from where you left off.`。空字串會使用預設值 |371| `CLAUDE_CODE_RESUME_PROMPT` | 覆寫當 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 接續中斷的回合而非重新傳送其提示詞時,或當您以 `-p` 繼續[延後的工具呼叫](https://code.claude.com/docs/zh-TW/hooks.md#defer-a-tool-call-for-later)時,Claude Code 傳送給 Claude 的接續訊息。預設為 `Continue from where you left off.`。空字串會使用預設值 |

372| `CLAUDE_CODE_RESUME_SHOWS_CUT_OFF_CALLS` | 設為 `1` 可在 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 繼續的回合中保留[中斷的工具呼叫](https://code.claude.com/docs/zh-TW/sessions.md#what-a-resumed-session-restores),並將其標示為已截斷。未設定時,這些呼叫會在回合繼續前被捨棄。有些呼叫仍會被捨棄,例如對 subagent、skill、工作流程以及等待人員回應之工具的呼叫。關於 VS Code 聊天面板,請參閱[重新載入後繼續對話](https://code.claude.com/docs/zh-TW/vs-code.md#continue-conversations-after-a-reload)。需要 Claude Code v2.1.309 或更新版本 |

371| `CLAUDE_CODE_RETRY_WATCHDOG` | 針對無人值守的工作階段(例如 eval harness、CI 作業或遠端 worker)設為 `1`。無限期重試 `429` 與 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度請求收到回報支出上限或用量點數已用盡的 `429` 時,Claude Code 會立即失敗,即使是來自會依排程重設的[閘道支出上限](https://code.claude.com/docs/zh-TW/errors.md#spend-limit-reached)也是如此。在 v2.1.239 之前,watchdog 會無限期重試這些錯誤。關於快速模式請求,請參閱[處理速率限制](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)。watchdog 在每次嘗試之間最多退避 5 分鐘,或在回應攜帶速率限制重設時間時等到限制重設為止,因此達到用量上限的工作階段會等候剩餘的時間範圍。在 v2.1.199 或更新版本中,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時與中斷的連線)的預設重試次數提高至 300 次,約為三小時的退避時間,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其 15 次的上限。需要 Claude Code v2.1.186 或更新版本 |373| `CLAUDE_CODE_RETRY_WATCHDOG` | 針對無人值守的工作階段(例如 eval harness、CI 作業或遠端 worker)設為 `1`。無限期重試 `429` 與 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度請求收到回報支出上限或用量點數已用盡的 `429` 時,Claude Code 會立即失敗,即使是來自會依排程重設的[閘道支出上限](https://code.claude.com/docs/zh-TW/errors.md#spend-limit-reached)也是如此。在 v2.1.239 之前,watchdog 會無限期重試這些錯誤。關於快速模式請求,請參閱[處理速率限制](https://code.claude.com/docs/zh-TW/fast-mode.md#handle-rate-limits)。watchdog 在每次嘗試之間最多退避 5 分鐘,或在回應攜帶速率限制重設時間時等到限制重設為止,因此達到用量上限的工作階段會等候剩餘的時間範圍。在 v2.1.199 或更新版本中,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時與中斷的連線)的預設重試次數提高至 300 次,約為三小時的退避時間,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其 15 次的上限。需要 Claude Code v2.1.186 或更新版本 |

372| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,每個 API 請求等候 `429` 與 `529` 錯誤的最長時間(毫秒)。用完該時間後,下一個此類錯誤會結束請求。請以純數字提供正整數,例如 `1800000` 代表 30 分鐘。未設定時,等待沒有上限。需要 Claude Code v2.1.295 或更新版本 |374| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | 設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,每個 API 請求等候 `429` 與 `529` 錯誤的最長時間(毫秒)。用完該時間後,下一個此類錯誤會結束請求。請以純數字提供正整數,例如 `1800000` 代表 30 分鐘。未設定時,等待沒有上限。需要 Claude Code v2.1.295 或更新版本 |

373| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | 在設定 `CLAUDE_CODE_RETRY_WATCHDOG` 的情況下,請求等待[用量上限](https://code.claude.com/docs/zh-TW/errors.md#youve-hit-your-session-limit)重設期間,檢查該上限是否已提前解除的最短間隔(毫秒)。當檢查發現上限已解除時,請求會立即送出。請以純數字提供 `60000`(一分鐘)至 `10800000`(三小時)之間的整數。僅會在未使用用量點數時針對 claude.ai 訂閱的工作階段或每週上限進行檢查,且在設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時不會檢查。當此變數未設定或其值超出該範圍時,不會進行任何檢查。需要 Claude Code v2.1.305 或更新版本 |375| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | 在設定 `CLAUDE_CODE_RETRY_WATCHDOG` 的情況下,請求等待[用量上限](https://code.claude.com/docs/zh-TW/errors.md#youve-hit-your-session-limit)重設期間,檢查該上限是否已提前解除的最短間隔(毫秒)。當檢查發現上限已解除時,請求會立即送出。請以純數字提供 `60000`(一分鐘)至 `10800000`(三小時)之間的整數。僅會在未使用用量點數時針對 claude.ai 訂閱的工作階段或每週上限進行檢查,且在設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時不會檢查。當此變數未設定或其值超出該範圍時,不會進行任何檢查。需要 Claude Code v2.1.305 或更新版本 |

errors.md +39 −12

Details

146| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [網路](#sessions-ended-while-this-machine-was-offline) |146| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [網路](#sessions-ended-while-this-machine-was-offline) |

147| `Couldn't share the transcript.` | [網路](#couldnt-share-the-transcript) |147| `Couldn't share the transcript.` | [網路](#couldnt-share-the-transcript) |

148| `Couldn't send feedback` | [網路](#couldnt-send-feedback) |148| `Couldn't send feedback` | [網路](#couldnt-send-feedback) |

149| `Feedback payload too large. Try again without the transcript, or shorten the details.` | [網路](#feedback-payload-too-large) |

149| `MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting.` | [網路](#mcp-server-connection-timed-out-during-a-sleep-or-clock-change) |150| `MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting.` | [網路](#mcp-server-connection-timed-out-during-a-sleep-or-clock-change) |

150| `Prompt is too long` / `Input is too long for requested model` | [請求錯誤](#prompt-is-too-long) |151| `Prompt is too long` / `Input is too long for requested model` | [請求錯誤](#prompt-is-too-long) |

151| `Prompt is too long · automatic compaction failed:` | [請求錯誤](#prompt-is-too-long) |152| `Prompt is too long · automatic compaction failed:` | [請求錯誤](#prompt-is-too-long) |


335| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [工具錯誤](#failed-to-write-to-a-teammate-inbox) |336| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [工具錯誤](#failed-to-write-to-a-teammate-inbox) |

336| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [工具錯誤](#teammate-agent-definition-not-restored) |337| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [工具錯誤](#teammate-agent-definition-not-restored) |

337| `Only a teammate can approve a shutdown request` | [工具錯誤](#only-a-teammate-can-approve-a-shutdown-request) |338| `Only a teammate can approve a shutdown request` | [工具錯誤](#only-a-teammate-can-approve-a-shutdown-request) |

339| `A command-line deny rule cannot be handed to a teammate intact` | [工具錯誤](#command-line-deny-rule-cannot-be-handed-to-a-teammate) |

338| `Message too large for cross-session delivery` | [工具錯誤](#message-too-large-for-cross-session-delivery) |340| `Message too large for cross-session delivery` | [工具錯誤](#message-too-large-for-cross-session-delivery) |

339| `Too many messages to this session just now` | [工具錯誤](#too-many-messages-to-this-session-just-now) |341| `Too many messages to this session just now` | [工具錯誤](#too-many-messages-to-this-session-just-now) |

340| `Cross-session message was dropped at the recipient session's inbox` | [工具錯誤](#cross-session-message-dropped-at-the-inbox) |342| `Cross-session message was dropped at the recipient session's inbox` | [工具錯誤](#cross-session-message-dropped-at-the-inbox) |


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

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

377| `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) |379| `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) |

378| `kept <id> — its worktree is still at <path>` | [背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere) |380| `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) |

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

380| `kept <id> — worktree has commits that are not pushed anywhere` | [背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere) |382| `kept <id> — worktree has commits that are not pushed anywhere` | [背景工作階段錯誤](#worktree-has-commits-that-are-not-pushed-anywhere) |

381| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [背景工作階段錯誤](#terminal-host-process-died) |383| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [背景工作階段錯誤](#terminal-host-process-died) |


2188 2190 

2189### Couldn't send feedback2191### Couldn't send feedback

2190 2192 

2191以 `Couldn't send feedback` 開頭的訊息表示您從 [`/feedback`、`/bug` 或 `/share` 對話方塊](https://code.claude.com/docs/zh-TW/commands#all-commands)提交的報告,或佇列中的[意見反應草稿](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior),未能傳送。當冒號後面接著一句關於您組織的說明時,表示您的組織拒絕接收意見反應,同一份報告會得到相同的回應。2193以 `Couldn't send feedback` 開頭的訊息表示意見反應服務未確認收到您從 [`/feedback`、`/bug` 或 `/share` 對話方塊](https://code.claude.com/docs/zh-TW/commands#all-commands)提交的報告,或佇列中的[意見反應草稿](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior)。請將其視為未收到。當冒號後面接著一句關於您組織的說明時,表示您的組織拒絕接收意見反應,同一份報告會得到相同的回應。

2192 2194 

2193以下兩個範例中,第一個是網路故障,第二個是組織的拒絕:2195以下兩個範例中,第二個是組織的拒絕:

2194 2196 

2195```text wrap theme={null}2197```text wrap theme={null}

2196Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.2198Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.


2203* **未登入**:訊息接著顯示 `: not signed in. Run /login, then retry.`。執行 `/login`,然後再次傳送2205* **未登入**:訊息接著顯示 `: not signed in. Run /login, then retry.`。執行 `/login`,然後再次傳送

2204* **您組織的拒絕**:例如 `: Feedback has not been enabled for your organization.` 或 `: Feedback collection is not available for organizations with custom data retention policies.`。如果訊息附加 `To report a bug, open an issue`,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交 issue。佇列中的草稿會保留在佇列中,您可以[捨棄它](https://code.claude.com/docs/zh-TW/tools-reference.md#discard-or-keep-a-draft)2206* **您組織的拒絕**:例如 `: Feedback has not been enabled for your organization.` 或 `: Feedback collection is not available for organizations with custom data retention policies.`。如果訊息附加 `To report a bug, open an issue`,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交 issue。佇列中的草稿會保留在佇列中,您可以[捨棄它](https://code.claude.com/docs/zh-TW/tools-reference.md#discard-or-keep-a-draft)

2205* **憑證遭拒**:訊息接著顯示 `: the sign-in this session uses is not allowed to send feedback` 或 `: the server did not accept the credentials this session uses`。在 Claude Code 提示字元執行 `/status`,以查看此工作階段傳送的是哪個登入、token 或 API 金鑰2207* **憑證遭拒**:訊息接著顯示 `: the sign-in this session uses is not allowed to send feedback` 或 `: the server did not accept the credentials this session uses`。在 Claude Code 提示字元執行 `/status`,以查看此工作階段傳送的是哪個登入、token 或 API 金鑰

2206* **`Couldn't send feedback` 後緊接著 `(request timed out)` 或 `(couldn't reach the service)`**:這些是網路故障。再次傳送報告或佇列中的草稿。對話方塊會保留您的文字,而佇列中草稿的訊息會顯示 `The draft is still queued.`。如果其他請求也失敗,請檢查您的網路連線並查看 [Unable to connect to API](#unable-to-connect-to-api)。如果持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告2208* **`Couldn't send feedback` 後緊接著 `(request timed out)` 或 `(couldn't reach the service)`**:再次傳送報告或佇列中的草稿。對話方塊會保留您的文字,而佇列中草稿的訊息會顯示 `The draft is still queued.`。如果其他請求也失敗,請檢查您的網路連線並查看 [Unable to connect to API](#unable-to-connect-to-api)。如果持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告

2207* **`Couldn't send feedback` 後緊接著 `(server returned <status>)`,或沒有任何原因**:狀態是服務的回應代碼。當服務有傳送自己的訊息時,該訊息會接在狀態之後,例如 `(server returned 403: Access Forbidden)`。如果持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告2209* **`Couldn't send feedback` 後緊接著 `(server returned <status>)`,或沒有任何原因**:狀態是服務的回應代碼。當服務有傳送自己的訊息時,該訊息會接在狀態之後,例如 `(server returned 403: Access Forbidden)`。如果持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告

2208 2210 

2209github.com/anthropics/claude-code 上的 issue 是公開的,因此在提交時請省略程式碼、逐字稿以及任何其他機密內容。2211github.com/anthropics/claude-code 上的 issue 是公開的,因此在提交時請省略程式碼、逐字稿以及任何其他機密內容。

2210 2212 

2211在 v2.1.281 之前,一旦在對話方塊開啟期間收到 Remote Control **Stop** 或緊急跨工作階段訊息,之後每次傳送都會失敗並出現此訊息。在這些版本上,關閉對話方塊,重新開啟它,然後再次傳送。2213在 v2.1.281 之前,一旦在對話方塊開啟期間收到 Remote Control **Stop** 或緊急跨工作階段訊息,之後每次傳送都會失敗並出現此訊息。在這些版本上,關閉對話方塊,重新開啟它,然後再次傳送。

2212 2214 

2215### Feedback payload too large

2216 

2217[意見反應草稿](https://code.claude.com/docs/zh-TW/tools-reference.md#sendfeedback-tool-behavior)的[檢閱畫面](https://code.claude.com/docs/zh-TW/tools-reference.md#review-and-edit-a-draft)中出現此訊息,表示 Claude Code 沒有收到服務已接受該草稿的確認。請將其視為未收到。草稿會保留在您的 `/feedback` 佇列中,因此您可以再次傳送。

2218 

2219```text wrap theme={null}

2220Feedback payload too large. Try again without the transcript, or shorten the details.

2221```

2222 

2223**該怎麼做:**

2224 

2225* 在檢閱畫面中,將 **Send transcript** 設定為 `no`,然後再次傳送草稿。縮短詳細資訊最多只能移除 10 KB 的文字,這也是草稿詳細資訊所能容納的全部內容。

2226 

2213### 睡眠或時鐘變更期間 MCP 伺服器連線逾時2227### 睡眠或時鐘變更期間 MCP 伺服器連線逾時

2214 2228 

2215此訊息表示與 [MCP 伺服器](https://code.claude.com/docs/zh-TW/mcp.md)的連線逾時,且 Claude Code 發現您的系統時鐘在嘗試期間向前跳動:2229此訊息表示與 [MCP 伺服器](https://code.claude.com/docs/zh-TW/mcp.md)的連線逾時,且 Claude Code 發現您的系統時鐘在嘗試期間向前跳動:


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

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

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

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

3285 3299 

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

3287 3301 


3476 3490 

3477### MCP 伺服器拒絕了 elicitation 功能3491### MCP 伺服器拒絕了 elicitation 功能

3478 3492 

3479某個以 Java MCP SDK 0.11.0 至 0.17.0 建置的 MCP 伺服器拒絕了連線。這些 SDK 版本無法解析 Claude Code 在交握中宣告的 `form` 與 `url` [elicitation 模式](https://code.claude.com/docs/zh-TW/mcp.md#elicitation-modes-claude-code-declares)。`claude mcp list` 會將該伺服器顯示為失敗,並以此訊息取代伺服器本身的錯誤:3493以 Java MCP SDK 0.11.0 至 0.17.0 建置的 MCP 伺服器拒絕了連線。這些 SDK 版本無法剖析 Claude Code 在交握中宣告的 `form` 與 `url` [elicitation 模式](https://code.claude.com/docs/zh-TW/mcp.md#elicitation-modes-claude-code-declares)。訊息如下:

3480 3494 

3481```text theme={null}3495```text theme={null}

3482This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).3496This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).


3573 3587 

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

3575 3589 

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

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

3578* `No shell command in <name> was run`:檔案中的某個 `!` 命令包含 tab 或換行以外的原始控制字元,因此所有命令都不會執行。請參閱[如何找出並移除該字元](#no-shell-command-was-run)3592* `No shell command in <name> was run`:該檔案中的某個 `!` 命令包含 tab 或換行以外的原始控制字元,因此所有命令都不會執行。請參閱[如何找出並移除該字元](#no-shell-command-was-run)

3579 3593 

3580**處理方式:**3594**處理方式:**

3581 3595 


3725 3739 

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

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

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

3729 3743 

3730**處理方式:**3744**處理方式:**

3731 3745 


4678* 如果該隊員仍在執行,請在組長的提示詞輸入框中要求組長關閉該隊員,例如 `Ask the researcher teammate to shut down`。請參閱 [關閉隊員](https://code.claude.com/docs/zh-TW/agent-teams.md#shut-down-teammates)。4692* 如果該隊員仍在執行,請在組長的提示詞輸入框中要求組長關閉該隊員,例如 `Ask the researcher teammate to shut down`。請參閱 [關閉隊員](https://code.claude.com/docs/zh-TW/agent-teams.md#shut-down-teammates)。

4679* 如果是您自己以 `claude --resume` 恢復的前隊員收到此拒絕,則沒有傳送任何內容。若要結束該工作階段,請在其提示詞輸入框中執行 `/exit`。4693* 如果是您自己以 `claude --resume` 恢復的前隊員收到此拒絕,則沒有傳送任何內容。若要結束該工作階段,請在其提示詞輸入框中執行 `/exit`。

4680 4694 

4695### A command-line deny rule cannot be handed to a teammate intact

4696 

4697此訊息表示 Claude Code 沒有在您的 [agent team](https://code.claude.com/docs/zh-TW/agent-teams.md) 中啟動 [分割窗格](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode) 隊員。Claude Code 會透過分割窗格隊員自己的命令列,將組長的命令列拒絕規則傳遞給該隊員,而當隊員會以不同方式解讀其中某條規則時,便會停止:

4698 

4699```text wrap theme={null}

4700A command-line deny rule cannot be handed to a teammate intact, so the teammate would not enforce it — spawn aborted

4701```

4702 

4703**處理方式:**

4704 

4705* 在組長工作階段中執行 `/config`,並將 **Teammate mode** 設為 `in-process`,然後要求 Claude 再次啟動該隊員。您不需要找出該規則或重新啟動組長。in-process 隊員會 [在組長即時生效的拒絕規則下執行](https://code.claude.com/docs/zh-TW/agent-teams.md#permissions)。

4706* 之後從您的使用者設定中取得 [`teammateMode`](https://code.claude.com/docs/zh-TW/settings-reference#teammatemode) 的工作階段也會以 in-process 方式啟動隊員,因為 `/config` 會將此選擇儲存在該處。若要在之後的工作階段中改回分割窗格,請將 **Teammate mode** 設為 `auto`、`tmux` 或 `iterm2`,也就是您先前使用的值。

4707 

4681### Message too large for cross-session delivery4708### Message too large for cross-session delivery

4682 4709 

4683Claude 傳送給您在此機器上另一個工作階段的 [跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md) 過長,無法傳送。Claude Code 拒絕了它,接收端工作階段沒有收到任何內容。拒絕訊息會出現在傳送端工作階段的工具結果中,而不是以橫幅形式出現在您的終端機中。它會指出兩個大小以及如何讓訊息符合限制:4710Claude 傳送給您在此機器上另一個工作階段的 [跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md) 過長,無法傳送。Claude Code 拒絕了它,接收端工作階段沒有收到任何內容。拒絕訊息會出現在傳送端工作階段的工具結果中,而不是以橫幅形式出現在您的終端機中。它會指出兩個大小以及如何讓訊息符合限制:


5115**該怎麼做:**5142**該怎麼做:**

5116 5143 

5117* 要保留提交,推送 worktree 的分支,或將其合併到在主簽出中簽出的預設分支,然後再次刪除工作階段5144* 要保留提交,推送 worktree 的分支,或將其合併到在主簽出中簽出的預設分支,然後再次刪除工作階段

5118* 要捨棄提交,執行訊息列印的 `claude rm <id> --discard-unpushed` 命令,或在 agent 檢視中的工作階段列上再次按 `Ctrl+X` 兩次。這會移除工作階段和 worktree 以及其分支、未推送的提交和任何未提交的變更。如果 worktree 自拒絕以來新增了提交,Claude Code 會再次保留它並顯示更新的狀態5145* 要捨棄提交,執行訊息列印的 `claude rm <id> --discard-unpushed` 命令,或在 agent 檢視中的工作階段列上再次按 `Ctrl+X` 兩次。這會移除工作階段和 worktree 以及其分支、未推送的提交和任何未提交的變更。如果刪除再次被拒絕,請依照新的訊息操作。

5119* 當訊息說 worktree 也由另一個已完成的工作階段記錄時,再次刪除不會捨棄它:推送提交,然後再次刪除工作階段5146* 當訊息說 worktree 也由另一個已完成的工作階段記錄時,再次刪除不會捨棄它:推送提交,然後再次刪除工作階段

5120 5147 

5121在 v2.1.268 之前,`claude rm` 將提交摘要放在 `kept` 行本身上。當 `claude rm` 無法總結提交時,`kept` 行會以 `worktree has commits that are not pushed anywhere` 代替摘要。5148在 v2.1.268 之前,`claude rm` 將提交摘要放在 `kept` 行本身上。當 `claude rm` 無法總結提交時,`kept` 行會以 `worktree has commits that are not pushed anywhere` 代替摘要。

5122 5149 

5123在 v2.1.260 之前,訊息未命名分支或提交,再次刪除也會以相同方式被拒絕:不推送而刪除工作階段意味著您必須使用 `git worktree remove --force <path>` 自己移除 worktree,然後再次執行 `claude rm <id>`。5150在 v2.1.260 之前,訊息未命名分支或提交,也沒有捨棄的途徑。您仍然可以刪除工作階段,這會遺失未提交的變更,但會保留分支和提交。使用拒絕訊息列印的路徑執行 `git worktree remove --force --force <path>`,然後執行 `claude rm <id>`。對於已鎖定的 worktree,Git 需要兩次 `--force`。

5124 5151 

5125在 v2.1.248 之前,在主簽出中簽出的預設分支不計算在內:您已經合併到那裡的分支仍然會觸發此拒絕,直到其提交到達遠端。5152在 v2.1.248 之前,在主簽出中簽出的預設分支不計算在內:您已經合併到那裡的分支仍然會觸發此拒絕,直到其提交到達遠端。

5126 5153 

fast-mode.md +2 −2

Details

45* 快速模式啟用時,提示旁會出現一個小的 `↯` 圖示45* 快速模式啟用時,提示旁會出現一個小的 `↯` 圖示

46* 隨時再次執行 `/fast` 以檢查快速模式是否開啟或關閉46* 隨時再次執行 `/fast` 以檢查快速模式是否開啟或關閉

47 47 

48Opus 5.5 是 Claude Code v2.1.280 及更新版本中的快速模式預設值。在 v2.1.280 之前,快速模式自 v2.1.219 版本起預設為 Opus 5,在 v2.1.154 至 v2.1.218 版本上預設為 Opus 4.8。48Opus 5.5 是 Claude Code v2.1.280 及更新版本中的快速模式預設值。在 v2.1.280 之前,快速模式自 v2.1.219 版本起預設為 Opus 5。

49 49 

50當您再次使用 `/fast` 關閉快速模式時,您仍保持在 Opus 上。要切換到不同的模型,請使用 `/model`。50當您再次使用 `/fast` 關閉快速模式時,您仍保持在 Opus 上。要切換到不同的模型,請使用 `/model`。

51 51 


58 58 

59每當模型切換開啟或關閉快速模式時,Claude Code 會顯示 `Fast mode ON` 或 `Fast mode OFF` 確認,快速模式開啟時會出現 `↯` 圖示。無論您使用 `/model`、[`/config model=<model>`](https://code.claude.com/docs/zh-TW/settings) 切換,或從透過[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md)連接的裝置切換,都是如此。59每當模型切換開啟或關閉快速模式時,Claude Code 會顯示 `Fast mode ON` 或 `Fast mode OFF` 確認,快速模式開啟時會出現 `↯` 圖示。無論您使用 `/model`、[`/config model=<model>`](https://code.claude.com/docs/zh-TW/settings) 切換,或從透過[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md)連接的裝置切換,都是如此。

60 60 

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

62 62 

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

64 64 

glossary.md +1 −1

Details

373 373 

374一個工作階段知道工作實際完成而不僅僅是看起來合理的方式。您給 Claude 一個它可以執行的檢查,例如測試套件、建置或螢幕截圖比較,Claude 迭代直到檢查通過,而不是在一次嘗試後停止。驗證迴圈是 [`/goal`](https://code.claude.com/docs/zh-TW/goal)、無人值守執行和[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)的先決條件:沒有它,唯一決定 agent 是否完成的就是 agent 本身。374一個工作階段知道工作實際完成而不僅僅是看起來合理的方式。您給 Claude 一個它可以執行的檢查,例如測試套件、建置或螢幕截圖比較,Claude 迭代直到檢查通過,而不是在一次嘗試後停止。驗證迴圈是 [`/goal`](https://code.claude.com/docs/zh-TW/goal)、無人值守執行和[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)的先決條件:沒有它,唯一決定 agent 是否完成的就是 agent 本身。

375 375 

376了解更多:[Give Claude a way to verify its work](https://code.claude.com/docs/zh-TW/best-practices.md#give-claude-a-way-to-verify-its-work)376了解更多:[Give Claude a check to run](https://code.claude.com/docs/zh-TW/best-practices.md#give-claude-a-check-to-run)

377 377 

378## W378## W

379 379 

Details

166| 主要模型 | `claude-opus-5-5` |166| 主要模型 | `claude-opus-5-5` |

167| 小型/快速模型 | `claude-sonnet-4-5@20250929` |167| 小型/快速模型 | `claude-sonnet-4-5@20250929` |

168 168 

169在 v2.1.280 之前,Google Cloud 的 Agent Platform 上的主要模型預設為 Opus 5,`opus` 別名從 v2.1.219 起解析為 Opus 5。

170 

169背景工作(例如工作階段標題產生)使用小型/快速模型,通常是 Haiku 級模型。在 Google Cloud 的 Agent Platform 上,Claude Code 針對背景工作使用預設 Sonnet 模型,因為 Haiku 可能未在每個專案或區域中啟用。兩個選項會變更哪個模型執行它們:171背景工作(例如工作階段標題產生)使用小型/快速模型,通常是 Haiku 級模型。在 Google Cloud 的 Agent Platform 上,Claude Code 針對背景工作使用預設 Sonnet 模型,因為 Haiku 可能未在每個專案或區域中啟用。兩個選項會變更哪個模型執行它們:

170 172 

171* 當您使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定選擇主要模型時,背景工作會使用該模型。當 Claude Code 在您使用 [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) 設定的模型上啟動工作階段時,背景工作也會使用該模型。設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 而不設定 `ANTHROPIC_DEFAULT_SONNET_MODEL` 也會計為選擇,因為內建 Sonnet 模型可能未在引導其自身 Opus 的專案中啟用。173* 當您使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定選擇主要模型時,背景工作會使用該模型。當 Claude Code 在您使用 [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) 設定的模型上啟動工作階段時,背景工作也會使用該模型。設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 而不設定 `ANTHROPIC_DEFAULT_SONNET_MODEL` 也會計為選擇,因為內建 Sonnet 模型可能未在引導其自身 Opus 的專案中啟用。


175>177>

176> Opus 模型的每 token 價格高於 Sonnet 模型,因此如果您不釘選主要模型,將會以 Opus 費率計費。若要使用 Sonnet 4.5 作為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。以 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引導預設值且未設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保持為預設值。178> Opus 模型的每 token 價格高於 Sonnet 模型,因此如果您不釘選主要模型,將會以 Opus 費率計費。若要使用 Sonnet 4.5 作為主要模型,請將 `ANTHROPIC_MODEL` 設定為其完整模型 ID。以 `ANTHROPIC_DEFAULT_SONNET_MODEL` 引導預設值且未設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 的部署會將其引導的 Sonnet 模型保持為預設值。

177 179 

178在 v2.1.280 之前,Google Cloud 的 Agent Platform 上的主要模型預設為 Opus 5,`opus` 別名從 v2.1.219 解析為 Opus 5。在 v2.1.207 至 v2.1.218 上,Google Cloud 的 Agent Platform 上的主要模型預設為 Opus 4.8,`opus` 別名解析為 Opus 4.8。

179 

180若要進一步自訂模型:180若要進一步自訂模型:

181 181 

182```bash theme={null}182```bash theme={null}

headless.md +4 −3

Details

236 236 

237如果您的串流中缺少其中某些訊息,請對照以下最低版本檢查您的 Claude Code 版本:237如果您的串流中缺少其中某些訊息,請對照以下最低版本檢查您的 Claude Code 版本:

238 238 

239* **在每個巢狀層級進行轉發**:v2.1.219 或更新版本

240* **Claude 從主對話以 Skill 工具啟動的分叉 skill**:其 `tool_use` 及 `tool_result` 區塊需要 v2.1.86 或更新版本,其第一則 `user` 訊息以及文字及思考區塊需要 v2.1.265 或更新版本239* **Claude 從主對話以 Skill 工具啟動的分叉 skill**:其 `tool_use` 及 `tool_result` 區塊需要 v2.1.86 或更新版本,其第一則 `user` 訊息以及文字及思考區塊需要 v2.1.265 或更新版本

241* **由分叉 skill 產生的 subagent 的訊息,以及在 subagent 或另一個分叉 skill 內啟動的分叉 skill 的訊息**:v2.1.275 或更新版本240* **由分叉 skill 產生的 subagent 的訊息,以及在 subagent 或另一個分叉 skill 內啟動的分叉 skill 的訊息**:v2.1.275 或更新版本

242* **您透過將 `/<skill-name>` 作為提示詞傳入而啟動的分叉 skill 的訊息**:v2.1.287 或更新版本241* **您透過將 `/<skill-name>` 作為提示詞傳入而啟動的分叉 skill 的訊息**:v2.1.287 或更新版本


285| 欄位 | 類型 | 說明 |284| 欄位 | 類型 | 說明 |

286| - | - | - |285| - | - | - |

287| `mcp_servers` | array | 工作階段中的 MCP 伺服器,每個都包含 `name` 及 `status` |286| `mcp_servers` | array | 工作階段中的 MCP 伺服器,每個都包含 `name` 及 `status` |

288| `mcp_server_errors` | array | 因設定驗證而被略過的 `--mcp-config` 項目,每個都包含 `name`、`type` 及 `message`。`type` 是略過類別,例如 `unknown_type`、`url_missing_type`、`invalid_config` 或 `reserved_name`;請將無法辨識的值視為一般略過。受影響的伺服器不會出現在 `mcp_servers` 中。沒有錯誤時會省略此鍵,因此 CI 關卡可以在陣列非空時判定失敗。需要 Claude Code v2.1.219 或更新版本 |287| `mcp_server_errors` | array | 因設定驗證而被略過的 `--mcp-config` 項目,每個都包含 `name`、`type` 及 `message`。`type` 是略過類別,例如 `unknown_type`、`url_missing_type`、`invalid_config` 或 `reserved_name`;請將無法辨識的值視為一般略過。受影響的伺服器不會出現在 `mcp_servers` 中。沒有錯誤時會省略此鍵,因此 CI 關卡可以在陣列非空時判定失敗 |

289 288 

290當您在終端機中手動執行命令時,Claude Code 也會將啟動警告輸出至 stderr,例如 `Warning: 1 MCP server skipped due to invalid config:`,接著列出每個被略過項目的原因。當您重新導向 stderr,或由 CI 執行器或 SDK 主機等程式擷取 stderr 時,Claude Code 不會輸出警告,僅在 `mcp_server_errors` 欄位中回報被略過的項目。此警告需要 Claude Code v2.1.219 或更新版本。289當您在終端機中手動執行命令時,Claude Code 也會將啟動警告輸出至 stderr,例如 `Warning: 1 MCP server skipped due to invalid config:`,接著列出每個被略過項目的原因。

290 

291當您重新導向 stderr,或由 CI 執行器或 SDK 主機等程式擷取 stderr 時,Claude Code 不會輸出警告,僅在 `mcp_server_errors` 欄位中回報被略過的項目。

291 292 

292#### 追蹤外掛安裝293#### 追蹤外掛安裝

293 294 

hooks.md +5 −9

Details

679 679 

680專案 skill 中的 frontmatter hook 遵循與[設定檔中的 hook 相同的工作區信任規則](#workspace-trust)。Claude Code 會在您或 Claude 叫用 skill 時註冊它們,包括在您尚未信任的資料夾中執行 `-p` 時。680專案 skill 中的 frontmatter hook 遵循與[設定檔中的 hook 相同的工作區信任規則](#workspace-trust)。Claude Code 會在您或 Claude 叫用 skill 時註冊它們,包括在您尚未信任的資料夾中執行 `-p` 時。

681 681 

682專案 subagent 中的 frontmatter hook,只有在您為 agent 檔案所在的資料夾接受[工作區信任對話方塊](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)後才會執行。`-p` 工作階段不算作接受。[信任資料夾前會執行的項目](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)將此與設定檔規則進行比較,而 subagent 頁面列出了[哪些範圍不受此限](https://code.claude.com/docs/zh-TW/sub-agents.md#hooks-in-subagent-frontmatter)。在 v2.1.218 之前,這些 hook 可能會從您尚未信任的資料夾執行。682專案 subagent 中的 frontmatter hook,只有在您為 agent 檔案所在的資料夾接受[工作區信任對話方塊](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)後才會執行。`-p` 工作階段不算作接受。[信任資料夾前會執行的項目](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)將此與設定檔規則進行比較,而 subagent 頁面列出了[哪些範圍不受此限](https://code.claude.com/docs/zh-TW/sub-agents.md#hooks-in-subagent-frontmatter)。

683 683 

684#### Skill hook 的限制684#### Skill hook 的限制

685 685 


3195* **命令 hook**(`type: "command"`):將路徑印為 stdout 的最後一個非空白行。Claude Code 會在讀取該行之前移除 ANSI 跳脫碼,因此在您的 `echo` 之前印出的 shell 啟動橫幅會被忽略。請將其他任何 hook 輸出重新導向至 stderr。3195* **命令 hook**(`type: "command"`):將路徑印為 stdout 的最後一個非空白行。Claude Code 會在讀取該行之前移除 ANSI 跳脫碼,因此在您的 `echo` 之前印出的 shell 啟動橫幅會被忽略。請將其他任何 hook 輸出重新導向至 stderr。

3196* **HTTP hook**(`type: "http"`):在回應主體中傳回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。3196* **HTTP hook**(`type: "http"`):在回應主體中傳回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。

3197 3197 

3198如果 hook 失敗或未產生路徑,worktree 建立會以錯誤失敗。3198如果 hook 失敗或未產生路徑,worktree 建立會失敗並出現錯誤。Claude Code 會以 hook 執行時所在的目錄為基準解析相對路徑,並收合其中的 `.` 或 `..` 區段。如果產生的路徑不是 Claude Code 可以進入的目錄,工作階段會印出指名該路徑的錯誤,並以代碼 1 結束。

3199 3199 

3200Claude Code 會以 hook 執行時所在的目錄為基準解析相對路徑,並化簡其中的 `.` 或 `..` 片段。如果所得路徑不是 Claude Code 可以進入的目錄,工作階段會印出指名該路徑的錯誤,並以代碼 1 結束。3200Claude Code 會拒絕包含 `.` 或 `..` 區段的絕對路徑,以及任何在儲存庫根目錄之下經過符號連結的路徑。錯誤會指名被拒絕的元件。提交至儲存庫的符號連結可能會將 worktree 重新導向到儲存庫之外。請回傳不經過儲存庫內符號連結的正規化路徑。

3201 

3202Claude Code 會拒絕包含 `.` 或 `..` 片段的絕對路徑,以及任何經過儲存庫根目錄之下符號連結的路徑,因為提交到儲存庫的符號連結可能會將 worktree 重新導向到儲存庫之外。錯誤會指名被拒絕的路徑元件。請傳回一個不經過儲存庫內部符號連結的正規化路徑。在 v2.1.216 之前,worktree 建立會直接沿用 hook 的路徑,而不進行此項檢查。

3203 3201 

3204### WorktreeRemove3202### WorktreeRemove

3205 3203 


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

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

3229 3227 

3230Claude Code 絕不會刪除屬於 hook 建立之 worktree 的分支,因為它只知道您的 WorktreeCreate hook 所傳回的路徑。如果您的 WorktreeCreate hook 會建立分支,請在您的 WorktreeRemove hook 中刪除它。3228Claude Code 絕不會刪除屬於 hook 建立之 worktree 的分支,因為它只知道您的 WorktreeCreate hook 所回傳的路徑。如果您的 WorktreeCreate hook 建立了分支,請在您的 WorktreeRemove hook 中將其刪除。Claude Code 會捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。

3231 

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

3233 3229 

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

3235 3231 

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

3237 3233 

Details

174 174 

175## 有效使用 Claude Code175## 有效使用 Claude Code

176 176 

177這些提示可幫助您從 Claude Code 獲得更好的結果。如需更多關於特定提示、驗證和規劃的資訊,請參閱[最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md)。177這些提示可幫助您從 Claude Code 獲得更好的結果。如需更多關於特定提示詞、驗證,以及值得強制執行而非透過提示詞要求的規則等資訊,請參閱[最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md)。

178 178 

179### 向 Claude Code 尋求幫助179### 向 Claude Code 尋求幫助

180 180 


196\[Claude 調查,嘗試一些東西]196\[Claude 調查,嘗試一些東西]

197 197 

198```text theme={null}198```text theme={null}

199這不太對。問題在於會話處理。199這不太對。問題在於工作階段處理。

200```200```

201 201 

202\[Claude 調整方法]202\[Claude 調整方法]

Details

92| `/` 在開始 | 命令或技能 | 請參閱[命令](#commands)和[技能](https://code.claude.com/docs/zh-TW/skills.md) |92| `/` 在開始 | 命令或技能 | 請參閱[命令](#commands)和[技能](https://code.claude.com/docs/zh-TW/skills.md) |

93| `!` 在開始 | Shell 模式 | 直接執行命令,將其輸出新增到工作階段,並讓 Claude 回應它 |93| `!` 在開始 | Shell 模式 | 直接執行命令,將其輸出新增到工作階段,並讓 Claude 回應它 |

94| `@` | 檔案路徑提及 | 觸發檔案路徑自動完成。在具有[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md#message-another-session)的工作階段中,當您在 `@` 後輸入至少一個字母時,Claude Code 也會建議您在此機器上的其他即時工作階段,以便您可以告訴 Claude 訊息您選擇的工作階段。需要 Claude Code v2.1.232 或更新版本 |94| `@` | 檔案路徑提及 | 觸發檔案路徑自動完成。在具有[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md#message-another-session)的工作階段中,當您在 `@` 後輸入至少一個字母時,Claude Code 也會建議您在此機器上的其他即時工作階段,以便您可以告訴 Claude 訊息您選擇的工作階段。需要 Claude Code v2.1.232 或更新版本 |

95| `:` | 表情符號速記代碼 | 輸入完整的 `:name:` 以插入表情符號,或輸入兩個或更多字元以取得建議。請參閱[表情符號速記代碼](#emoji-shortcodes)。需要 Claude Code v2.1.217 或更新版本 |95| `:` | 表情符號速記代碼 | 輸入完整的 `:name:` 以插入表情符號,或輸入兩個或更多字元以取得建議。請參閱[表情符號速記代碼](#emoji-shortcodes) |

96| `?` 在空輸入上 | 切換快捷鍵說明面板 | 當輸入已包含文字時輸入 `?` 會插入字元 |96| `?` 在空輸入上 | 切換快捷鍵說明面板 | 當輸入已包含文字時輸入 `?` 會插入字元 |

97 97 

98### 文字記錄檢視器98### 文字記錄檢視器


197 197 

198> [!NOTE]198> [!NOTE]

199>199>

200> 在 vim NORMAL 模式中,如果游標位於輸入的開始或結尾且無法進一步移動,`j`/`k` 和 `↑`/`↓` 會改為導覽命令歷史。在空提示上按 `←` 也會從 NORMAL 模式和 INSERT 模式開啟[代理檢視](https://code.claude.com/docs/zh-TW/agent-view.md);在 v2.1.219 之前,在空提示上按 `←` 在 NORMAL 模式中不執行任何操作。200> 在 vim NORMAL 模式中,如果游標位於輸入的開始或結尾且無法進一步移動,`j`/`k` 和 `↑`/`↓` 會改為導覽命令歷史。在空提示上按 `←` 會從 NORMAL 模式以及 INSERT 模式開啟 [agent 檢視](https://code.claude.com/docs/zh-TW/agent-view.md)。

201 201 

202### 編輯(NORMAL 模式)202### 編輯(NORMAL 模式)

203 203 


396Claude Code 會在您傳送某些命令時立即執行它們,而不是排隊,其中包括 `/model`、`/effort` 和 `/fast`。這三個命令各自改變一個設定:模型、effort 等級或快速模式。Claude Code 是否將新設定應用於 Claude 已在進行的回合,或僅從您的下一回合開始,因命令而異:396Claude Code 會在您傳送某些命令時立即執行它們,而不是排隊,其中包括 `/model`、`/effort` 和 `/fast`。這三個命令各自改變一個設定:模型、effort 等級或快速模式。Claude Code 是否將新設定應用於 Claude 已在進行的回合,或僅從您的下一回合開始,因命令而異:

397 397 

398* [`/model`](https://code.claude.com/docs/zh-TW/model-config#setting-your-model):一旦您確認 [快取警告](https://code.claude.com/docs/zh-TW/prompt-caching.md#switching-models)(如果 Claude Code 顯示的話),Claude Code 會將您的變更應用於該回合中它進行的下一個請求398* [`/model`](https://code.claude.com/docs/zh-TW/model-config#setting-your-model):一旦您確認 [快取警告](https://code.claude.com/docs/zh-TW/prompt-caching.md#switching-models)(如果 Claude Code 顯示的話),Claude Code 會將您的變更應用於該回合中它進行的下一個請求

399* [`/effort`](https://code.claude.com/docs/zh-TW/model-config#adjust-effort-level):一旦您確認 [快取警告](https://code.claude.com/docs/zh-TW/prompt-caching.md#changing-effort-level)(如果 Claude Code 顯示的話),Claude Code 會將您的變更應用於該回合中它進行的下一個請求399* `/effort`:您傳送的下一則訊息會以新等級執行。若要 [在 Claude 已在進行的回合中開始套用](https://code.claude.com/docs/zh-TW/model-config.md#when-a-new-effort-level-starts),請在 Claude 執行工具呼叫時排隊一則訊息

400* [`/fast`](https://code.claude.com/docs/zh-TW/fast-mode#toggle-fast-mode):Claude Code 保留回合開始時啟用的快速模式設定,因此您的速度變更從您的下一回合開始應用。如果您目前的模型不支援快速模式,開啟它也會 [切換您的模型](https://code.claude.com/docs/zh-TW/prompt-caching.md#turning-on-fast-mode),Claude Code 會從該回合中的下一個請求開始使用新模型400* [`/fast`](https://code.claude.com/docs/zh-TW/fast-mode#toggle-fast-mode):Claude Code 保留回合開始時啟用的快速模式設定,因此您的速度變更從您的下一回合開始應用。如果您目前的模型不支援快速模式,開啟它也會 [切換您的模型](https://code.claude.com/docs/zh-TW/prompt-caching.md#turning-on-fast-mode),Claude Code 會從該回合中的下一個請求開始使用新模型

401 401 

402### 在有排隊訊息時將工作階段移至背景402### 在有排隊訊息時將工作階段移至背景


513 513 

514## Emoji 快捷代碼514## Emoji 快捷代碼

515 515 

516在提示輸入中輸入 `:` 後跟 emoji 快捷代碼以插入 emoji。需要 Claude Code v2.1.217 或更新版本。516在提示詞輸入中輸入 `:` 後跟 emoji 快捷代碼以插入 emoji。

517 517 

518* 輸入完整的快捷代碼,例如 `:heart:`,Claude Code 會在您輸入結尾的 `:` 時立即將其替換為 ❤️518* 輸入完整的快捷代碼,例如 `:heart:`,Claude Code 會在您輸入結尾的 `:` 時立即將其替換為 ❤️

519* 輸入 `:` 加上至少兩個字元的名稱,例如 `:hea`,以開啟建議彈出視窗,然後按 `Tab` 或 `Enter` 以插入突出顯示的 emoji519* 輸入 `:` 加上至少兩個字元的名稱,例如 `:hea`,以開啟建議彈出視窗,然後按 `Tab` 或 `Enter` 以插入突出顯示的 emoji

Details

31 31 

32> [!TIP]32> [!TIP]

33>33>

34> 有關在任何儲存庫中保持上下文較小的工作流程技術,例如[在子代理中執行探索](https://code.claude.com/docs/zh-TW/best-practices.md#use-subagents-for-investigation)以使檔案讀取保持在主對話之外,請參閱 [Claude Code 的最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md)。若要向組織中的每個開發人員推出基線設定,請參閱[為您的組織設定 Claude Code](https://code.claude.com/docs/zh-TW/admin-setup.md)。34> 有關在任何儲存庫中保持上下文較小的工作流程技術,請參閱 [Claude Code 的最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md)。其中一個例子是[在 subagent 中執行探索](https://code.claude.com/docs/zh-TW/best-practices.md#know-what-subagents-cost),使檔案讀取保持在主對話之外。若要向組織中的每個開發人員推出基線設定,請參閱[為您的組織設定 Claude Code](https://code.claude.com/docs/zh-TW/admin-setup.md)。

35 35 

36### 範例 monorepo36### 範例 monorepo

37 37 


158拒絕規則可以涵蓋在儲存庫中工作的每個人、只有您,或機器上的每個工作階段,取決於您將它們放在哪個設定檔中:158拒絕規則可以涵蓋在儲存庫中工作的每個人、只有您,或機器上的每個工作階段,取決於您將它們放在哪個設定檔中:

159 159 

160* **在儲存庫中工作的每個人**:將規則提交到 `.claude/settings.json`,位於儲存庫根目錄(如果您從那裡啟動 Claude),或位於每個套件的 `.claude/`(如果您從子目錄啟動)。與本頁面上的其他專案設定一樣,該檔案不會從父目錄繼承。160* **在儲存庫中工作的每個人**:將規則提交到 `.claude/settings.json`,位於儲存庫根目錄(如果您從那裡啟動 Claude),或位於每個套件的 `.claude/`(如果您從子目錄啟動)。與本頁面上的其他專案設定一樣,該檔案不會從父目錄繼承。

161* **僅您自己**:在儲存庫根目錄使用 `.claude/settings.local.json`,它會在儲存庫內的每個 CLI 工作階段中載入,無論啟動目錄如何,除了 Claude Code [不使用儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)的情況,例如在 Windows 上。相對模式(如範例的 `Read(./**/vendor/**/*)` )仍然[錨定在工作階段的目前工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#read-and-edit)而不是儲存庫根目錄,因此如果您從子目錄啟動工作階段,請在此檔案中將規則寫為 `//` 絕對路徑,例如 `Read(//absolute/path/to/repo/**/vendor/**/*)` 。在 v2.1.211 之前,`.claude/settings.local.json` 也只從啟動目錄載入。161* **僅您自己**:在儲存庫根目錄使用 `.claude/settings.local.json`。它會在儲存庫內的每個 CLI 工作階段中載入,無論啟動目錄如何,除了 Claude Code [不使用儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)的情況,例如在 Windows 上。

162 

163 相對模式(如範例的 `Read(./**/vendor/**/*)`)仍然[錨定在工作階段的目前工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#read-and-edit)而不是儲存庫根目錄。如果您從子目錄啟動工作階段,請在此檔案中將規則寫為 `//` 絕對路徑,例如 `Read(//absolute/path/to/repo/**/vendor/**/*)`。

162* **每個人,在每個工作階段中強制執行**:在[受管理設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定規則,使用者和專案設定無法覆蓋。164* **每個人,在每個工作階段中強制執行**:在[受管理設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定規則,使用者和專案設定無法覆蓋。

163 165 

164下面的範例阻止建置工件和供應商 SDK。其目錄模式以 `/**/*` 結尾而不是 `/**`,以便每個規則涵蓋目錄內的所有內容,但不涵蓋目錄本身。Claude 仍然可以列出這些目錄或進入它們,例如使用 `ls dist` 或 `cd build`。166下面的範例阻止建置工件和供應商 SDK。其目錄模式以 `/**/*` 結尾而不是 `/**`,以便每個規則涵蓋目錄內的所有內容,但不涵蓋目錄本身。Claude 仍然可以列出這些目錄或進入它們,例如使用 `ls dist` 或 `cd build`。


376將約定和參考內容從始終載入的 CLAUDE.md 移出到按需載入的機制中:378將約定和參考內容從始終載入的 CLAUDE.md 移出到按需載入的機制中:

377 379 

378* [技能](https://code.claude.com/docs/zh-TW/skills.md):Claude 僅在與任務相關時載入的參考資料380* [技能](https://code.claude.com/docs/zh-TW/skills.md):Claude 僅在與任務相關時載入的參考資料

379* [外掛](https://code.claude.com/docs/zh-TW/plugins/overview.md):平台團隊集中擁有的技能、hooks 和命令的版本化捆綁381* [外掛](https://code.claude.com/docs/zh-TW/plugins/overview.md):由平台團隊集中擁有的 skill、hook 和命令的版本化捆綁,並可[透過受管設定為所有人安裝](https://code.claude.com/docs/zh-TW/plugins/org.md#pre-install-and-require-plugins)

380* [MCP 伺服器](https://code.claude.com/docs/zh-TW/mcp.md):如果您的組織已經在儲存庫上執行程式碼搜尋或 RAG 索引,請將其公開為 MCP 工具,以便 Claude 查詢它而不是直接讀取檔案382* [MCP 伺服器](https://code.claude.com/docs/zh-TW/mcp.md):如果您的組織已經在儲存庫上執行程式碼搜尋或 RAG 索引,請將其公開為 MCP 工具,以便 Claude 查詢它而不是直接讀取檔案

381 383 

382有關平台團隊如何集中強制執行這些的資訊,請參閱[伺服器管理或端點管理設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#choose-between-server-managed-and-endpoint-managed-settings)。384有關平台團隊如何集中強制執行這些的資訊,請參閱[伺服器管理或端點管理設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#choose-between-server-managed-and-endpoint-managed-settings)。


465兩種技術有助於保持跨套件變更的一致性:467兩種技術有助於保持跨套件變更的一致性:

466 468 

467* **在一個工作階段中給 Claude 整個變更**:將共享編輯及其呼叫位置一起交付可以保持每個編輯背後的決策一致,而不是按套件重新推導它們469* **在一個工作階段中給 Claude 整個變更**:將共享編輯及其呼叫位置一起交付可以保持每個編輯背後的決策一致,而不是按套件重新推導它們

468* **在編輯前計劃**:[先計劃](https://code.claude.com/docs/zh-TW/best-practices.md#explore-first-then-plan-then-code)在 [Plan Mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 中,Claude 將計劃寫入檔案。長跨套件工作階段在進行中[壓縮其上下文](https://code.claude.com/docs/zh-TW/context-window.md#what-survives-compaction)。Claude Code 在每次壓縮後重新注入計劃檔案,因此計劃在對話歷史可能不會的地方倖存470* **在編輯前計劃**:先在 [plan mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 中計劃,Claude 會將計劃寫入檔案。長跨套件工作階段在進行中[壓縮其上下文](https://code.claude.com/docs/zh-TW/context-window.md#what-survives-compaction)。Claude Code 在每次壓縮後重新注入計劃檔案,因此計劃在對話歷史可能不會的地方倖存

469 471 

470## 後續步驟472## 後續步驟

471 473 

Details

266* 語音聽寫:取消設定閘道認證266* 語音聽寫:取消設定閘道認證

267* 遠端控制:取消設定閘道認證和 `ANTHROPIC_BASE_URL`267* 遠端控制:取消設定閘道認證和 `ANTHROPIC_BASE_URL`

268 268 

269## 其他配置269## 其他設定

270 270 

271這些設定涵蓋超出基礎 URL 和認證的情況。僅在您的管理員的說明、您的網路的出站規則或[故障排除表](#troubleshoot-gateway-errors)要求時設定它們。271這些設定涵蓋基礎 URL 與憑證以外的情況。僅在管理員的指示、網路的輸出規則或[疑難排解表](#troubleshoot-gateway-errors)要求時才需設定。

272 272 

273### 發送其他標頭273### 傳送額外的標頭

274 274 

275某些閘道使用除認證外的自訂標頭路由或標記請求,例如租戶識別碼或路由金鑰。要發送一個,請設定 [`ANTHROPIC_CUSTOM_HEADERS`](https://code.claude.com/docs/zh-TW/env-vars),每行一個 `Name: Value` 對。下面的示例添加了一個名為 `X-Org-Route` 的路由標頭:275部分閘道除了憑證之外,還會使用自訂標頭來路由或標記請求,例如租戶識別碼或路由金鑰。若要傳送此類標頭,請設定 [`ANTHROPIC_CUSTOM_HEADERS`](https://code.claude.com/docs/zh-TW/env-vars),每行一組 `Name: Value`。以下範例新增一個名為 `X-Org-Route` 的路由標頭:

276 276 

277**Bash or Zsh**277**Bash 或 Zsh**

278 278 

279```bash theme={null}279```bash theme={null}

280export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"280export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"


286$env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"286$env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"

287```287```

288 288 

289您也可以在設定檔案的 `env` 區塊中設定 `ANTHROPIC_CUSTOM_HEADERS`。在那裡使用 `\n` 在對之間,因為 JSON 字符串不能跨越多行:289您也可以在設定檔的 `env` 區塊中設定 `ANTHROPIC_CUSTOM_HEADERS`。由於 JSON 字串無法跨越多行,因此在該處請以 `\n` 分隔各組:

290 290 

291```json theme={null}291```json theme={null}

292{292{


296}296}

297```297```

298 298 

299像這樣的路由和租戶標頭名稱計為[需要批准的標頭](https://code.claude.com/docs/zh-TW/server-managed-settings.md#environment-variables-and-the-approval-dialog)。當標頭來自專案設定檔案時,Claude Code 會根據[它應用 `env` 值的規則](https://code.claude.com/docs/zh-TW/settings-reference#when-claude-code-applies-env-values)應用它們。299像這類路由與租戶標頭名稱屬於[需要核准的標頭](https://code.claude.com/docs/zh-TW/server-managed-settings.md#environment-variables-and-the-approval-dialog)。當標頭來自專案設定檔時,Claude Code 會依照[套用 `env` 值的時機規則](https://code.claude.com/docs/zh-TW/settings-reference#when-claude-code-applies-env-values)套用這些標頭。

300 300 

301### 將閘道模型添加到模型選擇器301### 將閘道模型新增至模型選擇器

302 302 

303啟用模型發現後,Claude Code 在啟動時查詢閘道以獲取其模型列表,並將這些名稱添加到 `/model` 選擇器以及內置項目。如果您或您的管理員在 [`modelPicker`](https://code.claude.com/docs/zh-TW/settings-reference#modelpicker) 陣列中設定 `replaceBuiltInOptions`,Claude Code 也會隱藏發現的名稱。它為會話已在使用的模型保留一行。303啟用模型探索後,Claude Code 會在啟動時向閘道查詢其模型清單,並將這些名稱與內建項目一併加入 `/model` 選擇器。若您或您的管理員在 [`modelPicker`](https://code.claude.com/docs/zh-TW/settings-reference#modelpicker) 清單中設定了 `replaceBuiltInOptions`,Claude Code 也會隱藏探索到的名稱。但它會保留目前工作階段正在使用之模型的項目。

304 304 

305如果您的閘道提供不在 Claude Code 內置列表中的模型名稱,並且您想從選擇器中選擇它們,請啟用它。如果內置模型是您使用的,您不需要發現;您的管理員也可能已通過受管設定啟用它。305若您的閘道提供不在 Claude Code 內建清單中的模型名稱,而您希望從選擇器中選取這些模型,請啟用此功能。若您使用的是內建模型,則不需要探索功能;您的管理員也可能已透過受管設定啟用此功能。

306 306 

307要啟用它,請在您的 shell 或 `~/.claude/settings.json` 的 `env` 區塊中設定 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`。307若要啟用,請在 shell 中或 `~/.claude/settings.json` 的 `env` 區塊中設定 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`。

308 308 

309發現的模型顯示為其他 `/model` 項目。每個項目顯示您的閘道為模型提供的描述,或在它不提供描述時顯示 `From gateway`。309探索到的模型會以額外的 `/model` 項目顯示。每個項目會顯示閘道為該模型提供的描述,若閘道未提供描述,則顯示 `From gateway`。

310 310 

311要確認發現已執行,請啟動 `claude --debug` 並在 `~/.claude/debug/<session-id>.txt` 的偵錯日誌中查找 `[gatewayDiscovery]` 行。第一次發現成功時,Claude Code 會記錄它緩存了多少模型,並且僅在閘道的列表更改時才再次記錄。`404`、超時或重定向也會出現在那裡。有關發現何時執行、它過濾什麼以及閘道提供的回應格式,請參閱[模型發現參考](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#model-discovery)。311若要確認探索已執行,請啟動 `claude --debug`,並在 `~/.claude/debug/<session-id>.txt` 的偵錯日誌中尋找 `[gatewayDiscovery]` 行。探索首次成功時,Claude Code 會記錄其快取了多少個模型,之後僅在閘道清單變更時才會再次記錄。`404`、逾時或重新導向也會出現在該處。關於探索的執行時機、其篩選的內容,以及閘道提供的回應格式,請參閱[模型探索參考](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#model-discovery)。

312 312 

313### 使用 apiKeyHelper 輪換認證313### 使用 apiKeyHelper 輪替憑證

314 314 

315`apiKeyHelper` 是 Claude Code 運行以獲取您的閘道認證的命令,而不是從靜態環境變數讀取它。315`apiKeyHelper` 是 Claude Code 執行以取得閘道憑證的命令,取代從靜態環境變數讀取憑證的方式。

316 316 

317當認證按計劃過期、來自保管庫或 SSO 命令,或您的管理員告訴您配置一個時,使用幫助程式。如果您的認證是您設定一次的固定字符串,[認證變數](#set-the-credential-variable)就是您需要的全部,您可以跳過本部分。317當憑證會定期到期、來自保管庫或 SSO 命令,或管理員要求您設定時,請使用 helper。若您的憑證是只需設定一次的固定字串,則僅需[憑證變數](#set-the-credential-variable)即可,可略過本節。

318 318 

319幫助程式是任何將當前認證列印到 stdout 的 shell 命令。Claude Code 通過您的系統 shell 運行它,因此在 Windows 上它可以是可執行檔案或 PowerShell 調用。編寫指令碼,使其可執行,並從您的[設定檔案](https://code.claude.com/docs/zh-TW/settings.md)中的 `apiKeyHelper` 參考它:319helper 可以是任何將目前憑證輸出至 stdout 的 shell 命令。Claude Code 會透過系統 shell 執行它,因此在 Windows 上它可以是可執行檔或 PowerShell 呼叫。請讓該命令只輸出憑證,不輸出其他任何內容。在 Claude Code v2.1.227 或更新版本中,若與金鑰一併輸出橫幅或日誌行,會導致 [helper 失敗](https://code.claude.com/docs/zh-TW/errors.md#your-apikeyhelper-script-is-failing)。撰寫指令碼、將其設為可執行,並在[設定檔](https://code.claude.com/docs/zh-TW/settings.md)中從 `apiKeyHelper` 參照它:

320 320 

321**Bash or Zsh**321**Bash 或 Zsh**

322 322 

323例如,從保管庫讀取的指令碼:323例如,一個從保管庫讀取的指令碼:

324 324 

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

326#!/bin/bash326#!/bin/bash

327vault kv get -field=api_key secret/llm-gateway/claude-code327vault kv get -field=api_key secret/llm-gateway/claude-code

328```328```

329 329 

330在 `~/.claude/settings.json` 中參考其路徑:330在 `~/.claude/settings.json` 中參照其路徑:

331 331 

332```json theme={null}332```json theme={null}

333{333{


337 337 

338**PowerShell**338**PowerShell**

339 339 

340例如,從保管庫讀取的指令碼:340例如,一個從保管庫讀取的指令碼:

341 341 

342```powershell theme={null}342```powershell theme={null}

343vault kv get -field=api_key secret/llm-gateway/claude-code343vault kv get -field=api_key secret/llm-gateway/claude-code

344```344```

345 345 

346在 `%USERPROFILE%\.claude\settings.json` 中參考 PowerShell 調用,轉義 JSON 字符串中的反斜杠:346在 `%USERPROFILE%\.claude\settings.json` 中參照該 PowerShell 呼叫,並在 JSON 字串中跳脫反斜線:

347 347 

348```json theme={null}348```json theme={null}

349{349{


351}351}

352```352```

353 353 

354Claude Code 預設將幫助程式的輸出緩存五分鐘,並在緩存生命週期過期後重新運行幫助程式。要更改生命週期,請以毫秒為單位設定 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS`,例如 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` 表示 15 分鐘。在 Claude Code v2.1.227 或更高版本上,與金鑰一起列印的橫幅或日誌行會使[幫助程式失敗](https://code.claude.com/docs/zh-TW/errors.md#your-apikeyhelper-script-is-failing)。354Claude Code 預設會將 helper 的輸出快取五分鐘,並在快取有效期限過後重新執行 helper。若要變更有效期限,請以毫秒為單位設定 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS`,例如 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` 代表 15 分鐘。

355 355 

356請參閱 [`apiKeyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#apikeyhelper) 以了解 Claude Code 重新運行幫助程式的其他情況。356關於 Claude Code 重新執行 helper 的其他情況,請參閱 [`apiKeyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#apikeyhelper)。

357 357 

358幫助程式的值在 `Authorization` 和 `x-api-key` 標頭中都發送,因此無論您的閘道讀取哪個標頭都有效。358helper 的值會同時在 `Authorization` 與 `x-api-key` 標頭中傳送,因此無論閘道讀取哪個標頭都能運作。

359 359 

360### 關閉閘道路徑外的流量360### 關閉閘道路徑以外的流量

361 361 

362閘道承載模型請求,但 Claude Code 也會向閘道路徑外發送非必要的背景流量,發送到 Anthropic 和第三方服務(如 GitHub):版本檢查、遙測、發行說明和類似請求。在只允許出站到閘道的網路上,這些請求會失敗,並且可能在您的出站監控中顯示為被阻止的連接。362閘道負責傳送模型請求,但 Claude Code 也會在閘道路徑之外,向 Anthropic 以及 GitHub 等第三方服務傳送非必要的背景流量:版本檢查、遙測、版本說明及類似請求。在僅允許輸出至閘道的網路上,這些請求會失敗,並可能在輸出監控中顯示為遭封鎖的連線。

363 363 

364Claude Code 僅在請求前往認證所屬的主機時,才會將認證附加到遙測或使用量指標請求。當 `ANTHROPIC_BASE_URL` 指向閘道時,Claude Code 會將其遙測事件發送到 Anthropic,而不使用您的閘道認證。當[認證變數](#set-the-credential-variable)或 `apiKeyHelper` 也處於活動狀態時,Claude Code 不會向 Console [分析儀表板](https://code.claude.com/docs/zh-TW/analytics.md#access-analytics-for-api-customers)報告使用量指標。在 v2.1.246 之前,Claude Code 可能會將閘道認證附加到發往 Anthropic 主機的遙測和使用量指標請求;模型請求始終使用閘道期望的認證前往閘道。364若要關閉這些流量,請在與閘道變數相同的 shell export 或設定檔 `env` 區塊中,一併設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`:

365 365 

366要關閉該流量,請在與閘道變數相同的 shell 導出或設定檔案 `env` 區塊中設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`:366**Bash 或 Zsh**

367 

368**Bash or Zsh**

369 367 

370```bash theme={null}368```bash theme={null}

371export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1369export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1


377$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"375$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"

378```376```

379 377 

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

381 379 

382* 它禁用自動更新,因此請計劃另一個更新路徑,例如您的套件管理器或受管分發。380* 它會停用自動更新,因此請規劃其他更新途徑,例如套件管理員或受管發佈。

383* 它抑制[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)可用性檢查。除非之前的檢查已在機器上啟用快速模式,否則 `/fast` 報告快速模式不可用。381* 它會抑制[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)的可用性檢查。除非先前的檢查已在該機器上啟用快速模式,否則 `/fast` 會回報快速模式無法使用。

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

385* 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` 將其關閉。

386* 對於每個遙測流和控制它的變數,請參閱[遙測服務](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)。

387 385 

388### 通過閘道路由到雲端提供者386### 透過閘道路由至雲端供應商

389 387 

390這些配置使用提供者特定的基礎 URL 變數代替 `ANTHROPIC_BASE_URL` 將 Claude Code 指向通過閘道的雲端提供者。Amazon Bedrock 和 Google Cloud 的 Agent Platform 閘道接受這些提供者的本機請求格式;Microsoft Foundry 和 AWS 上的 Claude Platform 閘道接受 Anthropic Messages 格式。在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 路由上,Claude Code 也會將它發送的 beta 標頭和請求欄位限制為該提供者接受的集合。有關您的閘道在每個路由上接收的內容,請參閱[閘道相容性指南](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md)。388這些設定會透過供應商專屬的基礎 URL 變數(取代 `ANTHROPIC_BASE_URL`)將 Claude Code 指向閘道。Amazon Bedrock 與 Google Cloud's Agent Platform 閘道接受這些供應商的原生請求格式;Microsoft Foundry 與 Claude Platform on AWS 閘道則接受 Anthropic Messages 格式。在 Amazon Bedrock 與 Google Cloud's Agent Platform 路由上,Claude Code 也會將其傳送的 beta 標頭與請求欄位限制為該供應商接受的集合。關於閘道在各路由上收到的內容,請參閱[閘道相容性指南](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md)。

391 389 

392僅在您的閘道團隊特別命名 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 時使用一個。如果上面的[驗證請求](#verify-the-connection)返回 JSON,您可以跳過本部分。390僅在閘道團隊明確指定 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 時才使用這些設定。若上方的[驗證請求](#verify-the-connection)傳回了 JSON,則可略過本節。

393 391 

394為您的閘道團隊命名的提供者設定區塊。Amazon Bedrock、Google Cloud 的 Agent Platform 和 AWS 上的 Claude Platform 區塊中的跳過身份驗證變數告訴 Claude Code 不要使用雲端提供者的認證簽署請求,因為閘道持有這些。如果閘道也需要自己的令牌,您放置它的位置取決於提供者:392請設定閘道團隊所指定供應商的區塊。Amazon Bedrock、Google Cloud's Agent Platform 與 Claude Platform on AWS 區塊中的略過驗證變數會告知 Claude Code 不要以雲端供應商的憑證簽署請求,因為這些憑證由閘道持有。若閘道本身也需要 token,其放置位置取決於供應商:

395 393 

396* **Amazon Bedrock、Google Cloud 的 Agent Platform 或 AWS 上的 Claude Platform**:在區塊後添加 `ANTHROPIC_AUTH_TOKEN`。Claude Code 將其作為 `Authorization: Bearer` 標頭發送到閘道。對於不同方案或標頭中的認證,請改用 [`ANTHROPIC_CUSTOM_HEADERS`](#send-additional-headers)。無論如何都保持跳過身份驗證變數設定,因為沒有它,Claude Code 會移除 `ANTHROPIC_AUTH_TOKEN`、[`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) 或 `ANTHROPIC_CUSTOM_HEADERS` 會添加的任何 `Authorization` 標頭。394* **Amazon Bedrock、Google Cloud's Agent Platform 或 Claude Platform on AWS**:在區塊之後加入 `ANTHROPIC_AUTH_TOKEN`。Claude Code 會將其以 `Authorization: Bearer` 標頭傳送至閘道。若憑證使用不同的驗證方式或標頭,請改用 [`ANTHROPIC_CUSTOM_HEADERS`](#send-additional-headers)。無論哪種情況,都請保留略過驗證變數的設定,因為若未設定,Claude Code 會移除 `ANTHROPIC_AUTH_TOKEN`、[`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) 或 `ANTHROPIC_CUSTOM_HEADERS` 原本會加入的任何 `Authorization` 標頭。

397* **Microsoft Foundry**:使用 `ANTHROPIC_FOUNDRY_API_KEY`,如[其區塊](#microsoft-foundry)所示395* **Microsoft Foundry**:依照[其區塊](#microsoft-foundry)所示使用 `ANTHROPIC_FOUNDRY_API_KEY`

398 396 

399#### Amazon Bedrock397#### Amazon Bedrock

400 398 

401當閘道發出自己的認證時,將 `AWS_BEARER_TOKEN_BEDROCK` 保留為未設定。如果您設定它,Claude Code 會將該 [Amazon Bedrock API 金鑰](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#2-configure-aws-credentials)作為 `Authorization` 標頭發送,而不是您的閘道令牌,即使設定了 `CLAUDE_CODE_SKIP_BEDROCK_AUTH`。399當閘道核發自己的憑證時,請勿設定 `AWS_BEARER_TOKEN_BEDROCK`。若設定了它,即使已設定 `CLAUDE_CODE_SKIP_BEDROCK_AUTH`,Claude Code 仍會以該 [Amazon Bedrock API 金鑰](https://code.claude.com/docs/zh-TW/amazon-bedrock.md#2-configure-aws-credentials)作為 `Authorization` 標頭傳送,而非您的閘道 token。

402 400 

403**Bash or Zsh**401**Bash 或 Zsh**

404 402 

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

406export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock404export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock


416$env:CLAUDE_CODE_USE_BEDROCK = "1"414$env:CLAUDE_CODE_USE_BEDROCK = "1"

417```415```

418 416 

419#### Google Cloud 的 Agent Platform417#### Google Cloud's Agent Platform

420 418 

421將專案 ID 和區域替換為您自己的值。Claude Code 在它發送到閘道的每個請求的路徑中包含兩者:419請將專案 ID 與區域替換為您自己的值。Claude Code 會在傳送至閘道的每個請求路徑中包含這兩者:

422 420 

423**Bash or Zsh**421**Bash 或 Zsh**

424 422 

425```bash theme={null}423```bash theme={null}

426export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex424export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex


440$env:CLOUD_ML_REGION = "us-east5"438$env:CLOUD_ML_REGION = "us-east5"

441```439```

442 440 

443該區塊涵蓋路由和身份驗證。來自 [Agent Platform 設定](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#4-configure-claude-code)的區域覆蓋和模型固定也通過閘道應用:441此區塊涵蓋路由與身分驗證。[Agent Platform 設定](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#4-configure-claude-code)中的區域覆寫與模型固定設定,透過閘道時同樣適用:

444 442 

445* **每個模型的區域**:如果您的閘道從 `CLOUD_ML_REGION` 以外的區域提供某些模型,請為每個設定匹配的 `VERTEX_REGION_CLAUDE_*` 變數,例如 `VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1`。[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md)列出了確切的名稱。443* **個別模型區域**:若閘道從 `CLOUD_ML_REGION` 以外的區域提供某些模型,請為每個模型設定對應的 `VERTEX_REGION_CLAUDE_*` 變數,例如 `VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1`。[環境變數參考](https://code.claude.com/docs/zh-TW/env-vars.md)列出了確切名稱。

446* **模型版本**:如 [Pin model versions](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#5-pin-model-versions) 中所示,固定 `ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL` 和 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。設定 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 也會將背景任務(如會話標題)移動到該模型,該部分解釋了哪個模型在其他情況下運行它們。444* **模型版本**:依照[固定模型版本](https://code.claude.com/docs/zh-TW/google-vertex-ai.md#5-pin-model-versions)中的說明固定 `ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL` 與 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。設定 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 也會將工作階段標題等背景任務移至該模型,該節也說明了在其他情況下由哪個模型執行這些任務。

447* **模型功能**:如果您固定您的 Claude Code 版本不識別的模型 ID,功能(如努力級別或擴展思考)可能在其上保持禁用。使用 [`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`](https://code.claude.com/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) 及其 Sonnet 和 Haiku 對應項聲明模型支持的內容。445* **模型功能**:若您固定的模型 ID 是您的 Claude Code 版本無法辨識的,effort 等級或延伸思考等功能可能會在該模型上維持停用。請使用 [`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`](https://code.claude.com/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) 及其 Sonnet 與 Haiku 對應變數宣告模型支援的功能。

448 446 

449#### Microsoft Foundry447#### Microsoft Foundry

450 448 

451將閘道的認證放在 `ANTHROPIC_FOUNDRY_API_KEY` 中;它作為 `x-api-key` 標頭發送到閘道。期望持有人令牌的閘道可以改用 [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](https://code.claude.com/docs/zh-TW/env-vars)。Claude Code 將該值作為 `Authorization: Bearer` 標頭發送,當兩者都設定時,它優先於 `ANTHROPIC_FOUNDRY_API_KEY`。需要 Claude Code v2.1.203 或更高版本。449將閘道的憑證放入 `ANTHROPIC_FOUNDRY_API_KEY`;它會以 `x-api-key` 標頭傳送至閘道。預期接收 bearer token 的閘道可改用 [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](https://code.claude.com/docs/zh-TW/env-vars)。Claude Code 會將該值以 `Authorization: Bearer` 標頭傳送,且兩者皆設定時,它優先於 `ANTHROPIC_FOUNDRY_API_KEY`。需要 Claude Code v2.1.203 或更新版本。

452 450 

453對於會注入自己的 `Authorization` 標頭的閘道,請設定 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` 並且不要設定這兩個憑證變數。Claude Code 接著會在不附加 Azure 憑證的情況下發送請求,並保留您提供的 `Authorization` 標頭,例如透過 `ANTHROPIC_CUSTOM_HEADERS` 提供的標頭。451若閘道會注入自己的 `Authorization` 標頭,請設定 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1`,並讓兩個憑證變數都保持未設定。Claude Code 便會在不附帶 Azure 憑證的情況下傳送請求,並保留您提供的 `Authorization` 標頭,例如透過 `ANTHROPIC_CUSTOM_HEADERS` 提供的標頭。

454 452 

455**Bash or Zsh**453**Bash 或 Zsh**

456 454 

457```bash theme={null}455```bash theme={null}

458export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry456export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry


468$env:CLAUDE_CODE_USE_FOUNDRY = "1"466$env:CLAUDE_CODE_USE_FOUNDRY = "1"

469```467```

470 468 

471#### AWS 上的 Claude Platform469#### Claude Platform on AWS

472 470 

473有關工作區 ID,請參閱 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)。471關於工作區 ID,請參閱 [Claude Platform on AWS](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)。

474 472 

475**Bash or Zsh**473**Bash 或 Zsh**

476 474 

477```bash theme={null}475```bash theme={null}

478export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws476export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws


490$env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"488$env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"

491```489```

492 490 

493#### 確認提供者路由491#### 確認供應商路由

494 492 

495從您設定區塊的 shell 啟動 `claude` 並運行 `/status`。使用 Amazon Bedrock 區塊,**Status** 標籤顯示如下行:493從設定該區塊的 shell 啟動 `claude`,然後執行 `/status`。使用 Amazon Bedrock 區塊時,**Status** 分頁會顯示如下的列:

496 494 

497```text theme={null}495```text theme={null}

498API provider: Amazon Bedrock496API provider: Amazon Bedrock


500AWS auth skipped498AWS auth skipped

501```499```

502 500 

503其他區塊在其提供者的名稱下產生相同的行,例如 Google Cloud 的 Agent Platform 的 `Vertex base URL` 和 `GCP auth skipped`;Microsoft Foundry 區塊僅在您設定 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` 時顯示身份驗證跳過行。如果您也通過公司代理路由,`Proxy` 行顯示代理 URL。如果基礎 URL 行缺失,該變數未到達會話。501其他區塊會以其供應商名稱產生相同的列,例如 Google Cloud's Agent Platform 會顯示 `Vertex base URL` 與 `GCP auth skipped`;Microsoft Foundry 區塊僅在您設定了 `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` 時才會顯示略過驗證的列。若您也透過企業代理伺服器進行路由,`Proxy` 列會顯示代理伺服器 URL。若缺少基礎 URL 列,表示該變數未傳入工作階段。

504 502 

505## 故障排除閘道錯誤503## 故障排除閘道錯誤

506 504 

mcp.md +8 −2

Details

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在 `--output-format stream-json` 執行中,Claude Code 也會在 `system/init` 事件的 [`mcp_server_errors` 欄位](https://code.claude.com/docs/zh-TW/headless#stream-responses)中回報被略過的 `--mcp-config` 項目,讓指令碼能偵測到該伺服器從未載入。這需要 Claude Code v2.1.219 或更新版本。87> [!NOTE]

88>

89> 在 `--output-format stream-json` 執行中,Claude Code 也會在 `system/init` 事件的 [`mcp_server_errors` 欄位](https://code.claude.com/docs/zh-TW/headless#stream-responses)中回報被略過的 `--mcp-config` 項目,讓指令碼能偵測到該伺服器從未載入。

88 90 

89### 選項 2:新增遠端 SSE 伺服器91### 選項 2:新增遠端 SSE 伺服器

90 92 


276 278 

277當您從 `/mcp` 中伺服器的選單選取 **Disable** 或 **Clear authentication** 時,Claude Code 也會捨棄該伺服器的快取項目。對已連線或失敗的伺服器,**Reconnect** 也會捨棄它;對 `cached` 伺服器,**Reconnect** 會立即連線伺服器並保留該項目。捨棄項目後,Claude Code 下次連線至該伺服器時,會從伺服器而非快取擷取工具清單。279當您從 `/mcp` 中伺服器的選單選取 **Disable** 或 **Clear authentication** 時,Claude Code 也會捨棄該伺服器的快取項目。對已連線或失敗的伺服器,**Reconnect** 也會捨棄它;對 `cached` 伺服器,**Reconnect** 會立即連線伺服器並保留該項目。捨棄項目後,Claude Code 下次連線至該伺服器時,會從伺服器而非快取擷取工具清單。

278 280 

279當伺服器的狀態為 `✘ Failed to connect` 時,`claude mcp list` 會在該狀態行後附加失敗詳細資訊,而 `claude mcp get <name>` 會在 `Issue:` 行中顯示它:HTTP 狀態或錯誤代碼,以及伺服器傳回的任何錯誤文字。`/mcp` 中伺服器的詳細資訊檢視也會在其 `Issue:` 列中包含相同的伺服器回報文字。Claude Code 會從這些詳細資訊中遮蔽類似憑證的文字,且絕不包含展開後的伺服器 URL,因為其中可能帶有機密資訊。Claude Code 不會在 `✘ Connection error` 狀態後附加詳細資訊,因為它在該處會印出的例外文字可能內嵌該 URL。在 v2.1.219 之前,這兩個命令只顯示單純的失敗狀態,不含狀態碼或伺服器的錯誤文字。281##### 連線失敗與未設定的伺服器

282 

283當伺服器的狀態為 `✘ Failed to connect` 時,`claude mcp list` 會將失敗詳細資訊附加在該狀態行後,而 `claude mcp get <name>` 會在 `Issue:` 行中顯示它。詳細資訊為 HTTP 狀態或錯誤碼,加上伺服器傳回的任何錯誤文字。`/mcp` 中伺服器的詳細檢視會在其 `Issue:` 列中包含相同的伺服器回報文字。

284 

285Claude Code 會從這些詳細資訊中遮蔽類似憑證的文字,且永遠不會包含展開後的伺服器 URL,因為其中可能帶有機密資訊。Claude Code 不會在 `✘ Connection error` 狀態後附加任何詳細資訊,因為它在該處會印出的例外文字可能內嵌該 URL。

280 286 

281當您從 `/mcp` 完成身分驗證,但連線仍因 HTTP 狀態或傳輸錯誤代碼而失敗時,Claude Code 會在嘗試後印出的訊息中加入該代碼以及伺服器 URL 的來源。來源是指通訊協定與主機,若 URL 有指定連接埠則加上連接埠,例如 `https://mcp.example.com`。287當您從 `/mcp` 完成身分驗證,但連線仍因 HTTP 狀態或傳輸錯誤代碼而失敗時,Claude Code 會在嘗試後印出的訊息中加入該代碼以及伺服器 URL 的來源。來源是指通訊協定與主機,若 URL 有指定連接埠則加上連接埠,例如 `https://mcp.example.com`。

282 288 

memory.md +2 −2

Details

237 237 

238每個大括號群組會乘以展開模式的數量:`src/*.{ts,tsx}` 展開為兩個模式,`{a,b}/{c,d}/*.{ts,tsx}` 展開為八個。若要保持展開有界,規則的整個 `paths` 清單共享一個 1,000 個展開模式和 4 MiB 的預算,沒有大括號的模式不計入其中。238每個大括號群組會乘以展開模式的數量:`src/*.{ts,tsx}` 展開為兩個模式,`{a,b}/{c,d}/*.{ts,tsx}` 展開為八個。若要保持展開有界,規則的整個 `paths` 清單共享一個 1,000 個展開模式和 4 MiB 的預算,沒有大括號的模式不計入其中。

239 239 

240Claude Code 使用任何會超過預算的未展開模式,其字面大括號不匹配任何檔案。在 v2.1.217 之前,具有許多大括號群組的 `paths` 值會在啟動時停止或當機 CLI。240Claude Code 使用任何會超過預算的未展開模式,其字面大括號不匹配任何檔案。

241 241 

242Glob 語法將 `[` 視為括號表達式的開始,例如 `[abc]`。具有無法讀取為括號表達式的 `[` 的模式(例如 `photos [2024/**`)無效:它不匹配任何檔案,規則的其他模式保持工作。若要匹配檔案名稱中的字面 `[`,請將其逸出為 `photos \[2024/**`。242Glob 語法將 `[` 視為括號表達式的開始,例如 `[abc]`。具有無法讀取為括號表達式的 `[` 的模式(例如 `photos [2024/**`)無效:它不匹配任何檔案,規則的其他模式保持工作。若要匹配檔案名稱中的字面 `[`,請將其逸出為 `photos \[2024/**`。

243 243 


568 568 

569`/memory` 命令列出您的 CLAUDE.md、CLAUDE.local.md 和其他記憶檔案在使用者和專案範圍內的位置,包括尚不存在的檔案的使用者和專案 CLAUDE.md 項目。它也讓您切換自動記憶開啟或關閉,並提供開啟自動記憶資料夾的選項。選擇任何檔案以在您的編輯器中開啟它;選擇尚不存在的檔案會先建立它。若要檢查啟動時載入了哪些 `CLAUDE.md` 和規則檔案,請執行 `/context`。569`/memory` 命令列出您的 CLAUDE.md、CLAUDE.local.md 和其他記憶檔案在使用者和專案範圍內的位置,包括尚不存在的檔案的使用者和專案 CLAUDE.md 項目。它也讓您切換自動記憶開啟或關閉,並提供開啟自動記憶資料夾的選項。選擇任何檔案以在您的編輯器中開啟它;選擇尚不存在的檔案會先建立它。若要檢查啟動時載入了哪些 `CLAUDE.md` 和規則檔案,請執行 `/context`。

570 570 

571VS Code 等 GUI 編輯器會在單獨的視窗中開啟檔案,您可以在檔案開啟時繼續使用工作階段。在 v2.1.216 之前,`/memory` 會等待您關閉檔案後才回應。Vim 等終端編輯器會接管終端,直到您退出。571VS Code 等 GUI 編輯器會在單獨的視窗中開啟檔案,您可以在檔案開啟時繼續使用工作階段。Vim 等終端機編輯器會接管終端機,直到您退出。

572 572 

573當您要求 Claude 記住某些內容時,例如「始終使用 pnpm,而不是 npm」或「記住 API 測試需要本地 Redis 實例」,Claude 會將其保存到自動記憶。要改為將指令新增到 CLAUDE.md,請直接要求 Claude,例如「將此新增到 CLAUDE.md」,或透過 `/memory` 自己編輯檔案。573當您要求 Claude 記住某些內容時,例如「始終使用 pnpm,而不是 npm」或「記住 API 測試需要本地 Redis 實例」,Claude 會將其保存到自動記憶。要改為將指令新增到 CLAUDE.md,請直接要求 Claude,例如「將此新增到 CLAUDE.md」,或透過 `/memory` 自己編輯檔案。

574 574 

model-config.md +21 −4

Details

542在下列情況中,會套用不同的等級:542在下列情況中,會套用不同的等級:

543 543 

544* **您自己的變更**:一旦您選擇 effort 等級、在 `/model` 中挑選模型,或稍後恢復工作階段,被標記請求的等級就不再沿用。544* **您自己的變更**:一旦您選擇 effort 等級、在 `/model` 中挑選模型,或稍後恢復工作階段,被標記請求的等級就不再沿用。

545* **Skill effort**:skill 的 `effort` frontmatter 為被標記請求設定的等級會套用於該回合,之後的回合則以 [effort 解析順序](#adjust-effort-level)為備援模型給出的等級執行。545* **為單一回合設定的 effort**:如果您以 `ultrathink` 提高了被標記的回合,或 skill 的 `effort` frontmatter 設定了其等級,該等級會套用於該回合。之後的回合則以 [effort 解析順序](#adjust-effort-level)為備援模型給出的等級執行。

546 546 

547在工作階段中,執行 `/effort status` 以查看目前生效的等級,或執行 `/effort` 以變更等級。547在工作階段中,執行 `/effort status` 以查看目前生效的等級,或執行 `/effort` 以變更等級。

548 548 


674 674 

675#### 使用 ultrathink 進行一次性深入推理675#### 使用 ultrathink 進行一次性深入推理

676 676 

677在提示詞中的任何位置加入 `ultrathink`,即可在該回合請求更深入的推理,而不變更工作階段的 effort 設定。Claude Code 會辨識此關鍵字並加入上下文內的指示。傳送至 API 的 effort 等級不會改變。Claude Code 會將其他片語(例如「think」、「think hard」和「think more」)當作一般提示詞文字傳遞,不會將其辨識為關鍵字。677在提示詞中的任何位置加入 `ultrathink`,即可在該回合請求更深入的推理,而不變更工作階段的 effort 設定。Claude Code 會辨識此關鍵字並加入上下文內的指示。Claude Code 會將其他片語(例如「think」、「think hard」和「think more」)當作一般提示詞文字傳遞,不會將其辨識為關鍵字。

678 

679在終端機提示詞中輸入時,此字詞也可以將該回合提高至 `xhigh` effort。當它可以這麼做時,此字詞會以彩虹色顯示。需要 Claude Code v2.1.311 或更新版本。如果您開始新回合時此字詞未以彩虹色顯示,請嘗試下列其中一項:

680 

681* 在不以 `/` 開頭的提示詞中,於引號、括號、路徑或命令等任何內容之外重新輸入它

682* 如果 `CLAUDE_CODE_EFFORT_LEVEL` 設定為低於 `xhigh`,請取消設定它、將您自己的 [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel) 提高至 `xhigh` 或以上,或請組織管理員提高您的[組織限制](#organization-effort-limits)

683* 在工作階段中執行 `/model` 以切換至 Opus 5.5、Sonnet 5.5、Haiku 5.5 或 Fable 5.1 模型。在此字詞無法提高回合等級的情況下(例如在 Amazon Bedrock 上),請改為[設定 effort 等級](#set-the-effort-level)

678 684 

679#### 設定 effort 等級685#### 設定 effort 等級

680 686 

681您可以透過下列任一方式變更 effort:687您可以透過下列任一方式變更 effort:

682 688 

683* **`/effort`**:不帶引數執行 `/effort` 以開啟互動式滑桿,在 `/effort` 後接等級名稱以直接設定,或執行 `/effort auto` 以清除您為目前模型儲存的等級。您可以在 Claude 工作時執行它,一旦您確認[快取警告](https://code.claude.com/docs/zh-TW/prompt-caching.md#changing-effort-level)(如果 Claude Code 有顯示),Claude Code 就會將新等級套用於該回合中的下一個請求689* **`/effort`**:不帶引數執行 `/effort` 以開啟互動式滑桿,在 `/effort` 後接等級名稱以直接設定,或執行 `/effort auto` 以清除您為目前模型儲存的等級

684* **在 `/model` 中**:選擇模型時,使用左/右方向鍵調整 effort 滑桿690* **在 `/model` 中**:選擇模型時,使用左/右方向鍵調整 effort 滑桿

685* **`--effort` 旗標**:啟動 Claude Code 時傳入等級名稱,為單一工作階段設定691* **`--effort` 旗標**:啟動 Claude Code 時傳入等級名稱,為單一工作階段設定

686* **環境變數**:將 `CLAUDE_CODE_EFFORT_LEVEL` 設定為等級名稱或 `auto`692* **環境變數**:將 `CLAUDE_CODE_EFFORT_LEVEL` 設定為等級名稱或 `auto`


692 698 

693如果您在[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定 `effortLevel`,Claude Code 會在 [effort 解析順序](#adjust-effort-level)的設定步驟套用它,使用者仍可使用 `/effort` 或 `--effort` 變更等級。若要讓使用者維持在某個等級或以下,請設定 [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel)。699如果您在[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)中設定 `effortLevel`,Claude Code 會在 [effort 解析順序](#adjust-effort-level)的設定步驟套用它,使用者仍可使用 `/effort` 或 `--effort` 變更等級。若要讓使用者維持在某個等級或以下,請設定 [`maxEffortLevel`](https://code.claude.com/docs/zh-TW/settings-reference#maxeffortlevel)。

694 700 

695選擇支援的模型時,effort 滑桿會出現在 `/model` 中。目前的 effort 等級也會顯示在工作階段標頭中的模型名稱旁,例如「with low effort」,因此您無需開啟 `/model` 即可確認哪個設定處於作用中。頁尾也會在啟動時以及等級變更時短暫顯示 effort 等級。701#### 檢查您設定的 effort 等級

702 

703選擇支援的模型時,effort 滑桿會出現在 `/model` 中。工作階段標頭中的等級(例如「with low effort」)來自您的 effort 設定,即使 Claude [仍以舊等級工作](#when-a-new-effort-level-starts)也是如此。頁尾也會在啟動時以及等級變更時短暫顯示 effort 等級。

704 

705#### 新 effort 等級何時開始生效

706 

707在終端機工作階段中,一旦 `/effort` 確認新等級,您傳送的下一則訊息就會以該等級執行。您可以在進行中的回合結束後傳送,或[在 Claude 仍在工作時](https://code.claude.com/docs/zh-TW/interactive-mode.md#queue-messages-while-claude-works)傳送:

708 

709* **回合結束後**:在那之前您不需要做任何事,若該回合以舊等級完成也屬預期情況

710* **Claude 仍在工作時**:輸入一則訊息,例如 `keep going`,然後按 `Enter` 將其排入佇列,而不中斷該回合。Claude 會在目前的工具呼叫完成時收到它,最遲則在回合結束時收到,並從那時起以新等級工作。

711 

712在 v2.1.242 之前,Claude Code 可能會將 `/effort` 本身排入佇列直到回合結束,而在不[擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段中(例如在[第三方供應商](https://code.claude.com/docs/zh-TW/third-party-integrations.md)上)則一律如此。

696 713 

697#### 自適應推理與固定思考預算714#### 自適應推理與固定思考預算

698 715 

monitoring-usage.md +335 −335

Details

576 576 

577### 標準屬性577### 標準屬性

578 578 

579所有指標與事件皆共用以下標準屬性:579所有指標與事件都共用以下標準屬性:

580 580 

581| 屬性 | 說明 | 控制方式 |581| 屬性 | 說明 | 控制方式 |

582| - | - | - |582| - | - | - |

583| `session.id` | Claude Code 本身的工作階段 ID,`/clear` 會取代它 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |583| `session.id` | Claude Code 自身的工作階段 ID,`/clear` 會將其替換 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |

584| `ccr.session.id` | 雲端工作階段識別碼,即 `CLAUDE_CODE_REMOTE_SESSION_ID` 的值,出現在於[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md)中執行的工作階段 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |584| `ccr.session.id` | 雲端工作階段識別碼,即 `CLAUDE_CODE_REMOTE_SESSION_ID` 的值,出現在於[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md)中執行的工作階段上 | `OTEL_METRICS_INCLUDE_SESSION_ID`(預設:true) |

585| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |585| `app.version` | 目前的 Claude Code 版本 | `OTEL_METRICS_INCLUDE_VERSION`(預設:false) |

586| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py`、`claude-vscode`,或 Claude Tag 工作階段的 `claude-in-slack` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |586| `app.entrypoint` | 工作階段的啟動方式,例如 `cli`、`sdk-cli`、`sdk-ts`、`sdk-py`、`claude-vscode`,或 Claude Tag 工作階段的 `claude-in-slack` | `OTEL_METRICS_INCLUDE_ENTRYPOINT`(預設:false) |

587| `organization.id` | 組織 UUID(已通過身分驗證時) | 可用時一律包含 |587| `organization.id` | 組織 UUID(已通過身分驗證時) | 可用時一律包含 |

588| `user.account_uuid` | 帳戶 UUID(已通過身分驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |588| `user.account_uuid` | 帳戶 UUID(已通過身分驗證時) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |

589| `user.account_id` | 符合 Anthropic 管理 API 標記格式的帳戶 ID(已通過身分驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |589| `user.account_id` | 符合 Anthropic 管理 API 的標記格式帳戶 ID(已通過身分驗證時),例如 `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID`(預設:true) |

590| `user.id` | 首次執行時產生並保存在 `~/.claude.json` 中的隨機匿名識別碼。不包含任何個人資訊,也不是由您的 Claude 帳戶衍生而來。刪除該檔案後,下次執行時會產生一個不相關的新值。 | 一律包含 |590| `user.id` | 首次執行時產生並保存在 `~/.claude.json` 中的隨機匿名識別碼。它不包含任何個人資訊,也並非衍生自您的 Claude 帳戶。刪除該檔案後,下次執行時會產生一個不相關的新值。 | 一律包含 |

591| `user.email` | 使用者電子郵件地址,來自您的登入資訊,或在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中來自該工作階段本身的憑證 | 可用時一律包含 |591| `user.email` | 使用者電子郵件地址,來自您的登入資訊,或在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中來自該工作階段自身的憑證 | 可用時一律包含 |

592| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時一律包含 |592| `terminal.type` | 終端機類型,例如 `iTerm.app`、`vscode`、`cursor` 或 `tmux` | 偵測到時一律包含 |

593| 來自 `OTEL_RESOURCE_ATTRIBUTES` 的鍵 | 您設定的自訂屬性,例如 `department` 或 `team.id`。請參閱[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |593| 來自 `OTEL_RESOURCE_ATTRIBUTES` 的鍵 | 您設定的自訂屬性,例如 `department` 或 `team.id`。請參閱[多團隊組織支援](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES`(預設:true) |

594| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 工作階段儲存庫的身分,由其 `origin` 遠端衍生而來。請參閱[儲存庫屬性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(預設:false)。需要 Claude Code v2.1.269 或更新版本 |594| `vcs.repository.url.full`、`vcs.owner.name`、`vcs.repository.name`、`vcs.provider.name` | 工作階段儲存庫的識別資訊,衍生自其 `origin` remote。請參閱[儲存庫屬性](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY`(預設:false)。需要 Claude Code v2.1.269 或更新版本 |

595 595 

596在透過 `/login` 登入 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)的工作階段中,CLI 會以經過身分驗證的身分標記匯出資料:`user.id` 為 IdP subject,`user.email` 為登入的電子郵件,而 `user.groups` 則以逗號分隔的字串承載 IdP 群組成員資格。每次匯出也會帶有 `identity.source: gateway-oidc`。閘道身分會最後套用,因此在這些工作階段中,透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 與 `identity.*` 鍵會被忽略。596在透過 `/login` 登入 [Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)的工作階段中,CLI 會在匯出資料上標記已通過身分驗證的身分:`user.id` 是 IdP subject,`user.email` 是登入的電子郵件,而 `user.groups` 則以逗號分隔字串的形式攜帶 IdP 群組成員資格。每筆匯出也會攜帶 `identity.source: gateway-oidc`。閘道身分最後才套用,因此在這些工作階段中,透過 `OTEL_RESOURCE_ATTRIBUTES` 設定的 `user.*` 與 `identity.*` 鍵會被忽略。

597 597 

598> [!NOTE]598> [!NOTE]

599>599>

600> Claude Code 在開發人員登入之前記錄的事件不會帶有閘道身分。當 Claude Code 在未登入閘道的狀態下開啟工作階段時(例如在[閘道結束登入](https://code.claude.com/docs/zh-TW/errors.md#cloud-gateway-session-expired)之後),登入前記錄的啟動事件會帶有匿名的 `user.id`,且沒有 `identity.source`。這些事件包括 [`managed_settings_resolved`](#managed-settings-resolved-event)、[`plugin_loaded`](#plugin-loaded-event) 與 [`mcp_server_connection`](#mcp-server-connection-event)。600> Claude Code 在開發人員登入前記錄的事件不會攜帶閘道身分。當 Claude Code 在未登入閘道的狀態下開啟工作階段時,例如在[閘道結束登入](https://code.claude.com/docs/zh-TW/errors.md#cloud-gateway-session-expired)之後,登入前記錄的啟動事件會攜帶匿名的 `user.id`,且沒有 `identity.source`。這些事件包括 [`managed_settings_resolved`](#managed-settings-resolved-event)、[`plugin_loaded`](#plugin-loaded-event) 與 [`mcp_server_connection`](#mcp-server-connection-event)。

601 601 

602關於透過閘道連線的 Claude Desktop 與 Cowork 工作階段上的身分屬性,請參閱[閘道 `telemetry` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry)。602關於透過閘道連線的 Claude Desktop 與 Cowork 工作階段上的身分屬性,請參閱[閘道 `telemetry` 參考](https://code.claude.com/docs/zh-TW/claude-apps-gateway-config#telemetry)。

603 603 

604事件還會額外包含以下屬性。這些屬性永遠不會附加到指標上,因為它們會導致無上限的基數:604事件還額外包含以下屬性。這些屬性絕不會附加到指標上,因為它們會造成無上限的基數:

605 605 

606* `prompt.id`:將使用者提示詞與其後直到下一個提示詞之前的所有事件相關聯的 UUID。請參閱[事件關聯屬性](#event-correlation-attributes)。606* `prompt.id`:將使用者提示詞與其後所有事件(直到下一個提示詞為止)相互關聯的 UUID。請參閱[事件關聯屬性](#event-correlation-attributes)。

607* `workspace.host_paths`:在桌面應用程式中選取的主機工作區目錄,以字串陣列表示607* `workspace.host_paths`:在桌面應用程式中選取的主機工作區目錄,以字串陣列表示

608* `workflow.run_id`:執行識別碼,前綴為 `wf_`,出現在屬於 [Workflow](https://code.claude.com/docs/zh-TW/workflows.md) 工具執行的 agent 所發出的 API 與工具事件上。依單一 `workflow.run_id` 篩選事件,即可重建該次執行的 API 請求與工具結果。此識別碼涵蓋工作流程腳本產生的 agent,以及這些 agent 再產生的任何 agent,例如 skill 呼叫。它與 Workflow 工具結果中回報的執行識別碼相符。608* `workflow.run_id`:執行識別碼,以 `wf_` 為前綴,出現在屬於 [Workflow](https://code.claude.com/docs/zh-TW/workflows.md) 工具執行的 agent 所發出的 API 與工具事件上。依單一 `workflow.run_id` 篩選事件,即可重建該次執行的 API 請求與工具結果。此識別碼涵蓋工作流程指令碼所產生的 agent,以及這些 agent 再產生的任何 agent,例如 skill 呼叫。它與 Workflow 工具結果中回報的執行識別碼相符。

609* `workflow.name`:工作流程的名稱,即其腳本的 `meta.name`,與 `workflow.run_id` 一同發出。當執行的是未經修改的內建腳本時,內建工作流程名稱會原樣顯示。使用者撰寫的名稱(包括內建腳本的編輯副本)會被替換為 `custom`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。609* `workflow.name`:工作流程的名稱,即其指令碼的 `meta.name`,與 `workflow.run_id` 一同發出。當執行的是未經修改的內建指令碼時,內建工作流程名稱會原樣顯示。使用者撰寫的名稱(包括內建指令碼的編輯副本)會被替換為 `custom`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。

610* `agent_id`:引發該事件的 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 的識別碼,例如 `a3f2c1b4d5e6f7a80`。攜帶此屬性的事件包括 subagent 的 API 與工具事件、其 [`assistant_response`](#assistant-response-event) 事件,以及已完成 subagent 的 [`subagent_completed`](#subagent-completed-event)。在主工作階段與[程序內隊員](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode)的事件上不存在。subagent 的 [span `agent_id`](#span-attributes) 是相同的值,或在開頭的 `a` 後加上標籤,例如 `acompact-3f2c1b4d5e6f7a80`。需要 Claude Code v2.1.310 或更新版本610* `agent_id`:引發事件的 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 的識別碼,例如 `a3f2c1b4d5e6f7a80`。攜帶此屬性的事件包括 subagent 的 API 與工具事件、其 [`assistant_response`](#assistant-response-event) 事件,以及已完成之 subagent 的 [`subagent_completed`](#subagent-completed-event)。在主工作階段與[同程序隊員](https://code.claude.com/docs/zh-TW/agent-teams.md#choose-a-display-mode)的事件上不存在。subagent 的 [span `agent_id`](#span-attributes) 是相同的值,或是在開頭的 `a` 後面加上標籤,如 `acompact-3f2c1b4d5e6f7a80`。需要 Claude Code v2.1.310 或更新版本

611* `parent_agent_id`:產生或最後一次恢復引發該事件之 subagent 的 agent 的 `agent_id`。當該 agent 是主工作階段時不存在。需要 Claude Code v2.1.310 或更新版本611* `parent_agent_id`:產生或最後一次恢復引發事件之 subagent 的 agent 的 `agent_id`。當該 agent 為主工作階段時不存在。需要 Claude Code v2.1.310 或更新版本

612 612 

613#### 儲存庫屬性613#### 儲存庫屬性

614 614 

615設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true`,即可以工作階段儲存庫的身分標記指標與事件,讓共用的收集器能按儲存庫歸屬使用量。需要 Claude Code v2.1.269 或更新版本。615設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true`,即可在指標與事件上標記工作階段儲存庫的識別資訊,讓共用的收集器能依儲存庫歸屬用量。需要 Claude Code v2.1.269 或更新版本。

616 616 

617Claude Code 會在每個工作階段中從儲存庫的 `origin` 遠端衍生這些屬性一次。當儲存庫的 HTTPS 與 SSH 遠端指向相同的主機與相同的路徑時(如 GitHub、GitLab 與 Bitbucket Cloud),兩者會產生相同的值:617Claude Code 會在每個工作階段中從儲存庫的 `origin` remote 衍生這些屬性一次。當儲存庫的 HTTPS 與 SSH remote 指向相同主機與相同路徑時(如 GitHub、GitLab 與 Bitbucket Cloud),兩者會產生相同的值:

618 618 

619| 屬性 | 值 |619| 屬性 | 值 |

620| - | - |620| - | - |

621| `vcs.repository.url.full` | 儲存庫的瀏覽器 URL,不含 `.git`,例如 `https://github.com/example-org/example-repo` |621| `vcs.repository.url.full` | 儲存庫的瀏覽器 URL,不含 `.git`,例如 `https://github.com/example-org/example-repo` |

622| `vcs.owner.name` | 擁有者或群組路徑,例如 `example-org`;當遠端路徑只有單一區段時會省略 |622| `vcs.owner.name` | 擁有者或群組路徑,例如 `example-org`;當 remote 路徑只有單一區段時省略 |

623| `vcs.repository.name` | 純儲存庫名稱,例如 `example-repo` |623| `vcs.repository.name` | 單純的儲存庫名稱,例如 `example-repo` |

624| `vcs.provider.name` | 當 Claude Code 將遠端的主機或 URL 形式辨識為下列提供者之一時,為 `github`、`gitlab`、`bitbucket` 或 `gitea`;否則省略 |624| `vcs.provider.name` | 當 Claude Code 將 remote 的主機或 URL 形式識別為下列提供者之一時,為 `github`、`gitlab`、`bitbucket` 或 `gitea`;否則省略 |

625 625 

626值會轉為小寫,且遠端 URL 中的憑證、查詢字串與片段永遠不會出現在其中。當工作階段沒有 `origin` 遠端、遠端不是 URL 形式,或唯一包含的儲存庫是您的家目錄時,這些屬性會被省略。626值會轉為小寫,且 remote URL 中的憑證、查詢字串與片段絕不會出現在其中。當工作階段沒有 `origin` remote、remote 不是 URL 形式,或唯一的上層儲存庫是您的家目錄時,這些屬性會被省略。

627 627 

628若要從[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)取得這些屬性,請在其[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)上設定遙測變數,包括 `OTEL_METRICS_INCLUDE_REPOSITORY`。同時也請在該環境的[網路存取](https://code.claude.com/docs/zh-TW/cloud-environments.md#network-access)中允許您收集器的網域。628若要從[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)取得這些屬性,請在其[雲端環境](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)上設定遙測變數,包括 `OTEL_METRICS_INCLUDE_REPOSITORY`。另外也要在環境的[網路存取](https://code.claude.com/docs/zh-TW/cloud-environments.md#network-access)中允許您收集器的網域。

629 629 

630您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 鍵會取代該鍵的衍生值。若您宣告了 `vcs.repository.url.full`,Claude Code 將永遠不會讀取遠端,且只會回報您宣告的鍵。630您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 鍵會取代該鍵的衍生值。如果您宣告了 `vcs.repository.url.full`,Claude Code 就完全不會讀取 remote,只回報您宣告的鍵。

631 631 

632若同一儲存庫的 HTTPS 與 SSH 複製回報不同的值(例如在自行託管的安裝中,HTTPS 複製 URL 帶有 SSH URL 所沒有的路徑前綴),請在 `OTEL_RESOURCE_ATTRIBUTES` 中宣告 `vcs.repository.url.full`,以及您希望回報的所有其他 `vcs.*` 鍵。如此一來,每個複製都會回報您宣告的身分。632如果同一儲存庫的 HTTPS 與 SSH clone 回報不同的值,例如在自行架設的安裝中,HTTPS clone URL 帶有 SSH URL 所沒有的路徑前綴,請在 `OTEL_RESOURCE_ATTRIBUTES` 中宣告 `vcs.repository.url.full`,以及您想回報的所有其他 `vcs.*` 鍵。如此一來,每個 clone 都會回報您宣告的識別資訊。

633 633 

634這些屬性只會流向您自己的匯出器;Anthropic 的遙測會捨棄所有 `vcs.*` 鍵。634這些屬性只會流向您自己的匯出器;Anthropic 的遙測會捨棄所有 `vcs.*` 鍵。

635 635 

636### 指標636### 指標

637 637 

638Claude Code 會匯出以下指標。「單位」欄顯示附加到每個指標的 OpenTelemetry 單位字串;計數類指標不帶單位。638Claude Code 會匯出以下指標。「單位」欄顯示附加在每個指標上的 OpenTelemetry 單位字串;計數指標不帶單位。

639 639 

640| 指標名稱 | 說明 | 單位 |640| 指標名稱 | 說明 | 單位 |

641| - | - | - |641| - | - | - |

642| `claude_code.session.count` | 已啟動的 CLI 工作階段計數 | 無 |642| `claude_code.session.count` | 已啟動的 CLI 工作階段數量 | 無 |

643| `claude_code.lines_of_code.count` | 已修改的程式碼行數計數 | 無 |643| `claude_code.lines_of_code.count` | 已修改的程式碼行數 | 無 |

644| `claude_code.pull_request.count` | 已建立的 pull request 數量 | 無 |644| `claude_code.pull_request.count` | 已建立的 pull request 數量 | 無 |

645| `claude_code.commit.count` | 已建立的 git 提交數量 | 無 |645| `claude_code.commit.count` | 已建立的 git 提交數量 | 無 |

646| `claude_code.cost.usage` | Claude Code 工作階段的成本 | USD |646| `claude_code.cost.usage` | Claude Code 工作階段的費用 | USD |

647| `claude_code.token.usage` | 已使用的 token 數量 | tokens |647| `claude_code.token.usage` | 使用的 token 數量 | tokens |

648| `claude_code.code_edit_tool.decision` | 程式碼編輯工具權限決定的計數 | 無 |648| `claude_code.code_edit_tool.decision` | 程式碼編輯工具權限決策的數量 | 無 |

649| `claude_code.active_time.total` | 總活躍時間 | s |649| `claude_code.active_time.total` | 總活躍時間 | s |

650 650 

651當 `prometheus` 是 `OTEL_METRICS_EXPORTER` 中列出的唯一匯出器時,Claude Code 會從匯出的指標中省略 `USD`、`tokens` 與 `s` 單位,使抓取結果保持為有效的 Prometheus 文字格式。指標名稱不會改變,而結合多個匯出器的設定(例如 `otlp,prometheus`)會保留單位。在 v2.1.216 之前,Prometheus 抓取結果包含僅適用於 OpenMetrics 的 `# UNIT` 行,部分抓取器會拒絕這些行。651當 `prometheus` 是 `OTEL_METRICS_EXPORTER` 中列出的唯一匯出器時,Claude Code 會從匯出的指標中省略 `USD`、`tokens` 與 `s` 單位,讓抓取結果保持有效的 Prometheus 文字格式。指標名稱不會改變,而組合多個匯出器的設定(例如 `otlp,prometheus`)則會保留單位。

652 652 

653### 指標詳細資訊653### 指標詳細資訊

654 654 

655每個指標都包含上方列出的標準屬性。帶有額外情境特定屬性的指標會在下方註明。655每個指標都包含上述的標準屬性。具有額外情境特定屬性的指標說明如下。

656 656 

657#### 工作階段計數器657#### 工作階段計數器

658 658 


661**屬性**:661**屬性**:

662 662 

663* 所有[標準屬性](#standard-attributes)663* 所有[標準屬性](#standard-attributes)

664* `start_type`:工作階段的啟動方式。為 `"fresh"`、`"resume"`、`"continue"` 或 `"agents_view"` 之一。`"agents_view"` 值代表 `claude agents` 儀表板程序,這是使用者啟動的本機 UI,而非對話工作階段。在您的儀表板中篩選此值,即可將 UI 程序啟動與對話工作階段區分開來。664* `start_type`:工作階段的啟動方式。為 `"fresh"`、`"resume"`、`"continue"` 或 `"agents_view"` 之一。`"agents_view"` 值代表 `claude agents` 儀表板程序,這是由使用者啟動的本機 UI,而非對話式工作階段。在儀表板中篩選此值,即可將 UI 程序啟動與對話式工作階段區分開來。

665 665 

666#### 程式碼行數計數器666#### 程式碼行數計數器

667 667 


675 675 

676#### Pull request 計數器676#### Pull request 計數器

677 677 

678當 Claude Code 透過 shell 命令或 MCP 工具建立 pull request 或 merge request 時遞增。678在 Claude Code 透過 shell 命令或 MCP 工具建立 pull request 或 merge request 時遞增。

679 679 

680**屬性**:680**屬性**:

681 681 


683 683 

684#### 提交計數器684#### 提交計數器

685 685 

686透過 Claude Code 建立 git 提交時遞增。686在透過 Claude Code 建立 git 提交時遞增。

687 687 

688**屬性**:688**屬性**:

689 689 

690* 所有[標準屬性](#standard-attributes)690* 所有[標準屬性](#standard-attributes)

691 691 

692#### 成本計數器692#### 費用計數器

693 693 

694在每次 API 請求之後遞增。694在每次 API 請求後遞增。

695 695 

696`agent.name`、`skill.name`、`plugin.name`、`mcp_server.name` 與 `mcp_tool.name` 屬性預設都會將部分名稱遮蔽為 `"custom"` 或 `"third-party"` 預留值。若您設定了 `OTEL_LOG_TOOL_DETAILS=1`,它們會改為帶有實際名稱。在 v2.1.273 之前,即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,成本與 token 計數器以及 `api_request`、`api_error` 與 `api_refusal` 事件仍帶有遮蔽後的值。696`agent.name`、`skill.name`、`plugin.name`、`mcp_server.name` 與 `mcp_tool.name` 屬性預設都會將部分名稱遮蔽為 `"custom"` 或 `"third-party"` 預留值。如果您設定 `OTEL_LOG_TOOL_DETAILS=1`,它們就會改為攜帶真實名稱。在 v2.1.273 之前,即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,費用與 token 計數器以及 `api_request`、`api_error` 與 `api_refusal` 事件仍會攜帶遮蔽後的值。

697 697 

698**屬性**:698**屬性**:

699 699 

700* 所有[標準屬性](#standard-attributes)700* 所有[標準屬性](#standard-attributes)

701* `model`:模型識別碼(例如 "claude-sonnet-5")701* `model`:模型識別碼(例如 "claude-sonnet-5")

702* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一702* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一

703* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在703* `speed`:請求使用快速模式時為 `"fast"`。否則不存在

704* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。704* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。

705* `agent.name`:發出請求的 subagent 類型。內建 agent 名稱以及來自官方市集外掛的 agent 會原樣出現。其他使用者定義的 agent 名稱會被替換為 `"custom"`。當請求並非由具名的 subagent 類型發出時不存在。705* `agent.name`:發出請求的 subagent 類型。內建 agent 名稱與來自官方市集外掛的 agent 會原樣顯示。其他使用者定義的 agent 名稱會被替換為 `"custom"`。當請求並非由具名的 subagent 類型發出時不存在。

706* `skill.name`:該請求作用中的 skill,由 Skill 工具或 `/` 命令設定,或由產生的 subagent 繼承。內建、隨附、使用者定義及官方市集外掛的 skill 名稱會原樣出現。第三方外掛的 skill 名稱會被替換為 `"third-party"`。當沒有作用中的 skill 時不存在。706* `skill.name`:請求當下啟用的 skill,由 Skill 工具或 `/` 命令設定,或由產生的 subagent 繼承。內建、隨附、使用者定義以及官方市集外掛的 skill 名稱會原樣顯示。第三方外掛的 skill 名稱會被替換為 `"third-party"`。沒有啟用的 skill 時不存在。

707* `plugin.name`:當作用中的 skill 或 subagent 由外掛提供時,為其所屬外掛。官方市集外掛名稱會原樣出現。第三方外掛名稱會被替換為 `"third-party"`。當 skill 與 subagent 皆沒有所屬外掛時不存在。707* `plugin.name`:當啟用的 skill 或 subagent 由外掛提供時,為所屬的外掛。官方市集外掛名稱會原樣顯示。第三方外掛名稱會被替換為 `"third-party"`。當 skill 與 subagent 都沒有所屬外掛時不存在。

708* `marketplace.name`:所屬外掛的安裝來源市集。即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,也只會針對官方市集外掛發出。否則不存在。708* `marketplace.name`:所屬外掛的安裝來源市集。即使設定了 `OTEL_LOG_TOOL_DETAILS=1`,也只會針對官方市集外掛發出。否則不存在。

709* `mcp_server.name`:此請求所使用之工具結果所屬的 MCP 伺服器。內建、經由 claude.ai 代理及官方登錄檔的伺服器名稱會原樣出現。使用者設定的伺服器名稱會被替換為 `"custom"`。當請求未使用任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 會在 MCP 工具呼叫之後的每個請求上設定此屬性,而不僅限於使用工具結果的請求,因此彙總此屬性的儀表板在您升級後會出現下降。709* `mcp_server.name`:此請求所使用之工具結果的 MCP 伺服器。內建、claude.ai 代理以及官方登錄中的伺服器名稱會原樣顯示。使用者設定的伺服器名稱會被替換為 `"custom"`。當請求未使用任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 會在 MCP 工具呼叫之後的每個請求上設定此屬性,而不只是在使用了工具結果的請求上,因此彙總此屬性的儀表板在您升級後會出現下降。

710* `mcp_tool.name`:此請求所使用之結果所屬的 MCP 工具,其遮蔽與版本行為與 `mcp_server.name` 相同。當請求未使用任何 MCP 工具結果時不存在。710* `mcp_tool.name`:此請求所使用之結果的 MCP 工具,遮蔽與版本行為與 `mcp_server.name` 相同。當請求未使用任何 MCP 工具結果時不存在。

711 711 

712#### Token 計數器712#### Token 計數器

713 713 

714在每次 API 請求之後遞增。714在每次 API 請求後遞增。

715 715 

716**屬性**:716**屬性**:

717 717 

718* 所有[標準屬性](#standard-attributes)718* 所有[標準屬性](#standard-attributes)

719* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)。`"input"` 類型不包含從提示快取讀取或寫入提示快取的 token,這些會計入 `"cacheRead"` 與 `"cacheCreation"`。`"cacheCreation"` 類型會將五分鐘與一小時[快取存留期](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)的快取寫入合併計算。719* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)。`"input"` 類型不包含從提示快取讀取或寫入的 token,這些 token 會計入 `"cacheRead"` 與 `"cacheCreation"`。`"cacheCreation"` 類型會將五分鐘與一小時[快取存留時間](https://code.claude.com/docs/zh-TW/prompt-caching.md#cache-lifetime)的快取寫入合併計算。

720* `model`:模型識別碼(例如 "claude-sonnet-5")720* `model`:模型識別碼(例如 "claude-sonnet-5")

721* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一721* `query_source`:發出請求之子系統的類別。為 `"main"`、`"subagent"` 或 `"auxiliary"` 之一

722* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在722* `speed`:請求使用快速模式時為 `"fast"`。否則不存在

723* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。詳細資訊請參閱[成本計數器](#cost-counter)。723* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。詳細資訊請參閱[費用計數器](#cost-counter)。

724* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。724* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。

725 725 

726#### 程式碼編輯工具決定計數器726#### 程式碼編輯工具決策計數器

727 727 

728當使用者接受或拒絕 Edit、Write 或 NotebookEdit 工具的使用時遞增。728在使用者接受或拒絕 Edit、Write 或 NotebookEdit 工具的使用時遞增。

729 729 

730**屬性**:730**屬性**:

731 731 

732* 所有[標準屬性](#standard-attributes)732* 所有[標準屬性](#standard-attributes)

733* `tool_name`:工具名稱(`"Edit"`、`"Write"`、`"NotebookEdit"`)733* `tool_name`:工具名稱(`"Edit"`、`"Write"`、`"NotebookEdit"`)

734* `decision`:使用者決定(`"accept"`、`"reject"`)734* `decision`:使用者決策(`"accept"`、`"reject"`)

735* `source`:決定的來源。為 `"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"` 或 `"user_reject"` 之一。各值的意義請參閱[工具決定事件](#tool-decision-event)。735* `source`:決策的來源。為 `"config"`、`"hook"`、`"user_permanent"`、`"user_temporary"`、`"user_abort"` 或 `"user_reject"` 之一。各值的意義請參閱[工具決策事件](#tool-decision-event)。

736* `language`:所編輯檔案的程式語言,例如 `"TypeScript"`、`"Python"`、`"JavaScript"` 或 `"Markdown"`。對於無法辨識的副檔名會回傳 `"unknown"`。736* `language`:所編輯檔案的程式語言,例如 `"TypeScript"`、`"Python"`、`"JavaScript"` 或 `"Markdown"`。對於無法識別的副檔名會回傳 `"unknown"`。

737 737 

738#### 活躍時間計數器738#### 活躍時間計數器

739 739 

740追蹤實際主動使用 Claude Code 所花費的時間,不包括閒置時間。此指標會在使用者互動期間(例如輸入與閱讀回應)以及 CLI 處理期間(例如工具執行與 AI 回應產生)遞增。740追蹤實際主動使用 Claude Code 的時間,不含閒置時間。此指標會在使用者互動期間(例如輸入與閱讀回應)以及 CLI 處理期間(例如工具執行與 AI 回應產生)遞增。

741 741 

742**屬性**:742**屬性**:

743 743 


750 750 

751#### 事件關聯屬性751#### 事件關聯屬性

752 752 

753當使用者提交提示詞時,Claude Code 可能會進行多次 API 呼叫並執行數個工具。`prompt.id` 屬性可讓您將所有這些事件連結回觸發它們的單一提示詞。753當使用者送出提示詞時,Claude Code 可能會進行多次 API 呼叫並執行數個工具。`prompt.id` 屬性可讓您將所有這些事件連結回觸發它們的單一提示詞。

754 754 

755| 屬性 | 說明 |755| 屬性 | 說明 |

756| - | - |756| - | - |

757| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示詞期間產生的所有事件 |757| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示詞時產生的所有事件 |

758| `event.sequence` | 從 0 開始的計數器,用於排序事件,以每個 Claude Code 程序而非每個工作階段計數 |758| `event.sequence` | 用於排序事件的從 0 起算計數器,依每個 Claude Code 程序計算,而非依每個工作階段 |

759| `message.uuid` | 保存在工作階段逐字稿(`~/.claude/projects/*/*.jsonl` 檔案)中之訊息的 UUID。出現在 `assistant_response`、`api_response_body` 以及 `user_prompt` 上,但命令分派除外,因為命令分派可能產生零則或多則訊息。在 `assistant_response` 與 `api_response_body` 上,這是該回應的最終逐字稿項目,下一個回合的 `parentUuid` 會從此項目串接。在 `api_response_body` 上需要 Claude Code v2.1.274 或更新版本 |759| `message.uuid` | 保存在工作階段逐字稿(`~/.claude/projects/*/*.jsonl` 檔案)中之訊息的 UUID。出現在 `assistant_response`、`api_response_body` 上,以及 `user_prompt` 上(命令分派除外,因為命令分派可能產生零則或多則訊息)。在 `assistant_response` 與 `api_response_body` 上,這是回應的最後一筆逐字稿項目,下一個回合的 `parentUuid` 會由此串接。在 `api_response_body` 上需要 Claude Code v2.1.274 或更新版本 |

760| `request_id` | 伺服器指派的 API 請求 ID,從 `request-id` 回應標頭讀取,例如 `req_011...`。對於沒有 `request-id` 標頭的回應(如 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 上),值會改從 `x-amzn-requestid` 標頭取得。當回應攜帶其中任一標頭時,會出現在 `api_request`、`api_error`、`api_refusal`、`assistant_response`、`api_response_body`、[`tool_result`](#tool-result-event) 與 [`tool_decision`](#tool-decision-event) 上。與 `llm_request` 追蹤 span 上的同名屬性相符。`x-amzn-requestid` 來源需要 Claude Code v2.1.282 或更新版本 |760| `request_id` | 伺服器指派給 API 請求的 ID,從 `request-id` 回應標頭讀取,例如 `req_011...`。若回應沒有 `request-id` 標頭(如在 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 上),則改從 `x-amzn-requestid` 標頭取得值。當回應攜帶任一標頭時,出現在 `api_request`、`api_error`、`api_refusal`、`assistant_response`、`api_response_body`、[`tool_result`](#tool-result-event) 與 [`tool_decision`](#tool-decision-event) 上。與 `llm_request` trace span 上的同名屬性相符。`x-amzn-requestid` 來源需要 Claude Code v2.1.282 或更新版本 |

761| `client_request_id` | 用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。在第一方 API 連線上出現於 `api_request` 與 `api_error`;在第三方供應商後端上,以及請求透過非串流備援重試時不會出現。可將請求與其回應配對,且對於逾時等從未產生伺服器 `request_id` 的失敗情況仍然可用。與 `llm_request` 追蹤 span 上的同名屬性相符 |761| `client_request_id` | 用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。在第一方 API 連線上出現在 `api_request` 與 `api_error` 上;在第三方提供者後端,以及請求透過非串流備援重試時不存在。用於將請求與其回應配對,且對於從未產生伺服器 `request_id` 的失敗(例如逾時)仍可使用。與 `llm_request` trace span 上的同名屬性相符 |

762 762 

763若要追蹤由單一提示詞觸發的所有活動,請以特定的 `prompt.id` 值篩選您的事件。這會傳回處理該提示詞期間發生的 user\_prompt 事件、任何 api\_request 事件以及任何 tool\_result 事件。763若要追蹤由單一提示詞觸發的所有活動,請依特定的 `prompt.id` 值篩選事件。這會回傳處理該提示詞期間發生的 user\_prompt 事件、所有 api\_request 事件,以及所有 tool\_result 事件。

764 764 

765`event.sequence` 在每次 Claude Code 程序啟動時從 0 開始,並在該程序的整個生命週期中遞增。它在 `/clear`(會指派新的 `session.id`)之後仍會持續計數。若您[在不分叉的情況下繼續工作階段](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#resume-or-fork-sessions),工作階段會保留其 `session.id`,但其 `event.sequence` 值會取自繼續該工作階段的程序,因此在同一工作階段中,較晚的事件可能帶有比較早事件更低的值,或重複某個值。若要排序工作階段的事件,請依 `event.timestamp` 排序,並使用 `event.sequence` 排序具有相同時間戳記的事件。765`event.sequence` 在每次 Claude Code 程序啟動時從 0 開始,並在該程序的生命週期內遞增。它會跨越 `/clear` 持續計數,而 `/clear` 會指派新的 `session.id`。如果您[不分岔地恢復工作階段](https://code.claude.com/docs/zh-TW/how-claude-code-works.md#resume-or-fork-sessions),工作階段會保留其 `session.id`,但其 `event.sequence` 值會取自恢復它的程序,因此在同一工作階段中,較晚的事件可能帶有比較早事件更低的值,或重複某個值。若要排序工作階段的事件,請依 `event.timestamp` 排序,並使用 `event.sequence` 排序時間戳記相同的事件。

766 766 

767為了進行訊息層級的重建,每個事件類別都帶有一個與工作階段逐字稿中欄位相符的鍵。逐字稿項目格式是 [Claude Code 內部使用的](https://code.claude.com/docs/zh-TW/sessions.md#where-transcripts-are-stored),且會在版本之間變更,因此依這些欄位進行聯結的管線可能會在任何版本發行時中斷;請將這些聯結視為特定版本的行為,而非穩定的約定:767若要進行訊息層級的重建,每個事件類別都帶有一個與工作階段逐字稿中某欄位相符的鍵。逐字稿項目格式是 [Claude Code 內部使用的](https://code.claude.com/docs/zh-TW/sessions.md#where-transcripts-are-stored),且會隨版本變動,因此依這些欄位進行聯結的管線可能在任何版本發布時中斷;請將這些聯結視為特定版本適用,而非穩定的約定:

768 768 

769* `user_prompt`、`assistant_response` 與 `api_response_body` 上的 `message.uuid`769* `user_prompt`、`assistant_response` 與 `api_response_body` 上的 `message.uuid`

770* API 事件上的 `request_id`,在逐字稿的助理項目中保存為 `requestId`770* API 事件上的 `request_id`,在逐字稿的 assistant 項目上保存為 `requestId`

771* `tool_result` 與 `tool_decision` 事件上的 `tool_use_id`,以及 `safety_event` 事件上的 `tool_use_id`,但[回合結束](#safety-event)的事件除外771* `tool_result` 與 `tool_decision` 事件上的 `tool_use_id`,以及 `safety_event` 事件上的 `tool_use_id`([回合結束](#safety-event)的事件除外)

772 772 

773#### 使用者提示詞事件773#### 使用者提示詞事件

774 774 

775在提交提示詞時記錄,包括 Claude Code 自行開始的回合。775在送出提示詞時記錄,包括 Claude Code 自行開始的回合。

776 776 

777**事件名稱**:`claude_code.user_prompt`777**事件名稱**:`claude_code.user_prompt`

778 778 


781* 所有[標準屬性](#standard-attributes)781* 所有[標準屬性](#standard-attributes)

782* `event.name`:`"user_prompt"`782* `event.name`:`"user_prompt"`

783* `event.timestamp`:ISO 8601 時間戳記783* `event.timestamp`:ISO 8601 時間戳記

784* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)784* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

785* `prompt_length`:提示詞長度785* `prompt_length`:提示詞的長度

786* `prompt`:提示詞內容。預設會遮蔽。設定 `OTEL_LOG_USER_PROMPTS=1` 即可包含786* `prompt`:提示詞內容。預設會遮蔽。設定 `OTEL_LOG_USER_PROMPTS=1` 即可包含

787* `prompt_text`:與 `prompt` 相同的值,並在相同條件下遮蔽。將帶點的屬性名稱儲存為巢狀物件的後端,會將 `prompt.id` 讀取為名為 `prompt` 之物件內的 `id`,因而可能遺失提示詞字串。在這種情況下,請改為讀取 `prompt_text`。需要 Claude Code v2.1.287 或更新版本787* `prompt_text`:與 `prompt` 相同的值,受相同條件遮蔽。將帶點號的屬性名稱儲存為巢狀物件的後端,會將 `prompt.id` 讀取為名為 `prompt` 之物件內的 `id`,因而可能遺失提示詞字串。在這類後端中請改讀取 `prompt_text`。需要 Claude Code v2.1.287 或更新版本

788* `message.uuid`:產生之使用者訊息的 UUID,與保存的逐字稿項目相符。命令分派時不會出現,因為命令分派可能產生零則或多則訊息。788* `message.uuid`:產生的使用者訊息的 UUID,與保存的逐字稿項目相符。在命令分派上不存在,因為命令分派可能產生零則或多則訊息。

789* `command_name`:當提示詞呼叫命令時的命令名稱。內建與隨附的命令名稱(例如 `compact` 或 `debug`)會原樣發出;別名(例如 `reset`)會依輸入的形式發出,而非標準名稱。自訂、外掛與 MCP 命令名稱會收斂為 `custom` 或 `mcp`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`789* `command_name`:提示詞呼叫命令時的命令名稱。內建與隨附的命令名稱(例如 `compact` 或 `debug`)會原樣發出;別名(例如 `reset`)會依輸入內容發出,而非標準名稱。自訂、外掛與 MCP 命令名稱會收斂為 `custom` 或 `mcp`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`

790* `command_source`:存在時為命令的來源:`builtin`、`custom` 或 `mcp`。外掛提供的命令會回報為 `custom`790* `command_source`:存在命令時的命令來源:`builtin`、`custom` 或 `mcp`。由外掛提供的命令會回報為 `custom`

791 791 

792#### 助理回應事件792#### Assistant 回應事件

793 793 

794在每次從模型傳回文字內容的 API 請求之後記錄。僅包含回應的文字區塊;思考區塊與工具使用區塊會被排除。794在每次從模型傳回文字內容的 API 請求後記錄。只包含回應的文字區塊;思考區塊與工具使用區塊不包含在內。

795 795 

796**事件名稱**:`claude_code.assistant_response`796**事件名稱**:`claude_code.assistant_response`

797 797 


800* 所有[標準屬性](#standard-attributes)800* 所有[標準屬性](#standard-attributes)

801* `event.name`:`"assistant_response"`801* `event.name`:`"assistant_response"`

802* `event.timestamp`:ISO 8601 時間戳記802* `event.timestamp`:ISO 8601 時間戳記

803* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)803* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

804* `response_length`:回應文字的長度(字元數)804* `response_length`:回應文字的長度(以字元計)

805* `response`:回應文字,在內容上限(預設 60 KB)處截斷。預設會遮蔽為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 即可包含。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,改由 `OTEL_LOG_USER_PROMPTS` 控制,因此若要在開啟提示詞日誌記錄的同時保持回應遮蔽,請設定 `OTEL_LOG_ASSISTANT_RESPONSES=0`805* `response`:回應文字,在內容上限處截斷(預設 60 KB)。預設會遮蔽為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 即可包含。當未設定 `OTEL_LOG_ASSISTANT_RESPONSES` 時,改由 `OTEL_LOG_USER_PROMPTS` 控制,因此若要在開啟提示詞記錄的同時保持回應遮蔽,請設定 `OTEL_LOG_ASSISTANT_RESPONSES=0`

806* `model`:模型識別碼(例如 "claude-sonnet-5")806* `model`:模型識別碼(例如 "claude-sonnet-5")

807* `request_id`:API 請求 ID,說明請參閱[事件關聯屬性](#event-correlation-attributes)807* `request_id`:API 請求 ID,說明請見[事件關聯屬性](#event-correlation-attributes)

808* `message.uuid`:該回應最終逐字稿項目的 UUID。一個 API 回應會依每個內容區塊保存為一個逐字稿項目;這是最後一個項目,下一個回合的 `parentUuid` 會從此項目串接。808* `message.uuid`:回應最後一筆逐字稿項目的 UUID。API 回應會以每個內容區塊一筆逐字稿項目的方式保存;這是最後一筆,下一個回合的 `parentUuid` 會由此串接。

809* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱809* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱

810 810 

811#### 工具結果事件811#### 工具結果事件

812 812 

813在工具完成執行時記錄。若工具呼叫遭拒絕則不會發出;關於拒絕,請參閱[工具決定事件](#tool-decision-event)。813在工具完成執行時記錄。若工具呼叫遭拒絕則不會發出;關於拒絕,請參閱[工具決策事件](#tool-decision-event)。

814 814 

815**事件名稱**:`claude_code.tool_result`815**事件名稱**:`claude_code.tool_result`

816 816 


819* 所有[標準屬性](#standard-attributes)819* 所有[標準屬性](#standard-attributes)

820* `event.name`:`"tool_result"`820* `event.name`:`"tool_result"`

821* `event.timestamp`:ISO 8601 時間戳記821* `event.timestamp`:ISO 8601 時間戳記

822* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)822* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

823* `tool_name`:工具名稱823* `tool_name`:工具名稱

824* `tool_use_id`:此次工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。824* `tool_use_id`:此工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。

825* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您能將該呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含該呼叫時不存在。需要 Claude Code v2.1.310 或更新版本825* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您可以將此呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含此呼叫時不存在。需要 Claude Code v2.1.310 或更新版本

826* `success`:`"true"` 或 `"false"`826* `success`:`"true"` 或 `"false"`

827* `duration_ms`:執行時間(毫秒)827* `duration_ms`:執行時間(毫秒)

828* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`828* `error_type`:工具失敗時的錯誤類別字串,例如 `"Error:ENOENT"` 或 `"ShellError"`

829* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息829* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):工具失敗時的完整錯誤訊息

830* `decision_type`:一律為 `"accept"`,因為此事件只會在工具執行後發出。遭拒絕的呼叫不會產生工具結果830* `decision_type`:一律為 `"accept"`,因為此事件只會在工具執行後發出。遭拒絕的呼叫不會產生工具結果

831* `decision_source`:權限決定的來源。為 `"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。各值的意義請參閱[工具決定事件](#tool-decision-event)。僅適用於拒絕的來源 `"user_abort"` 與 `"user_reject"` 永遠不會出現在此事件上。831* `decision_source`:權限決策的來源。為 `"config"`、`"hook"`、`"user_permanent"` 或 `"user_temporary"` 之一。各值的意義請參閱[工具決策事件](#tool-decision-event)。僅用於拒絕的來源 `"user_abort"` 與 `"user_reject"` 絕不會出現在此事件上。

832* `tool_input_size_bytes`:JSON 序列化後之工具輸入的大小(位元組)832* `tool_input_size_bytes`:JSON 序列化後工具輸入的大小(位元組)

833* `tool_result_size_bytes`:工具結果的大小(位元組)833* `tool_result_size_bytes`:工具結果的大小(位元組)

834* `mcp_server_scope`:MCP 伺服器範圍識別碼(適用於 MCP 工具)834* `mcp_server_scope`:MCP 伺服器範圍識別碼(適用於 MCP 工具)

835* `vcs.ref.head.revision`、`vcs.ref.head.name`、`vcs.ref.head.type`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):由 Bash 或 PowerShell 工具執行之成功 `git commit` 的提交身分。`vcs.ref.head.revision` 為提交 SHA,`vcs.ref.head.name` 為提交所在的分支,而 `vcs.ref.head.type` 為 `branch`。當提交是在 detached HEAD 上進行時,名稱與類型會被省略。需要 Claude Code v2.1.269 或更新版本835* `vcs.ref.head.revision`、`vcs.ref.head.name`、`vcs.ref.head.type`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):由 Bash 或 PowerShell 工具執行之成功 `git commit` 的提交識別資訊。`vcs.ref.head.revision` 是提交 SHA,`vcs.ref.head.name` 是提交所在的分支,而 `vcs.ref.head.type` 為 `branch`。當提交是在 detached HEAD 上進行時,會省略名稱與類型。需要 Claude Code v2.1.269 或更新版本

836* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使旗標關閉也會包含 `mcp_server_name`/`mcp_tool_name` 配對,這與[工具決策事件](#tool-decision-event)的主機撰寫例外相同。參數依工具而異:836* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使旗標關閉也會包含 `mcp_server_name`/`mcp_tool_name` 組合,這與[工具決策事件](#tool-decision-event)的主機定義例外相同。參數因工具而異:

837 * Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description` 與 `dangerouslyDisableSandbox`,並在 `git commit` 命令成功時另外包含 `git_commit_id` 與 `git_branch`。當該提交為工作階段工作目錄的 HEAD 時,`git_commit_id` 為完整的提交 SHA,否則為 git 的縮寫 SHA。`git_branch` 為提交所在的分支,在 detached HEAD 上會省略837 * 對於 Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description` 與 `dangerouslyDisableSandbox`,以及 `git commit` 命令成功時的 `git_commit_id` 與 `git_branch`。當提交是工作階段工作目錄的 HEAD 時,`git_commit_id` 是完整的提交 SHA,否則是 git 的縮寫 SHA。`git_branch` 是提交所在的分支,在 detached HEAD 上會省略

838 * 桌面應用程式的工作區 Bash 工具(同樣將 `tool_name` 回報為 `Bash`):僅包含 `bash_command`、`full_command` 與 `timeout`838 * 對於桌面應用程式的工作區 Bash 工具(同樣將 `tool_name` 回報為 `Bash`):只包含 `bash_command`、`full_command` 與 `timeout`

839 * MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`839 * 對於 MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`

840 * Skill 工具:包含 `skill_name`840 * 對於 Skill 工具:包含 `skill_name`

841 * Agent 工具或舊版 Task 工具:包含 `subagent_type`841 * 對於 Agent 工具或舊版 Task 工具:包含 `subagent_type`

842* `tool_input`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):JSON 序列化後的工具引數。超過 512 個字元的個別值會被截斷,且完整 payload 的上限約為 4 K 個字元。適用於所有工具,包括 MCP 工具。842* `tool_input`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):JSON 序列化的工具引數。超過 512 個字元的個別值會被截斷,而完整 payload 的上限約為 4 K 個字元。適用於所有工具,包括 MCP 工具。

843 843 

844#### API 請求事件844#### API 請求事件

845 845 


852* 所有[標準屬性](#standard-attributes)852* 所有[標準屬性](#standard-attributes)

853* `event.name`:`"api_request"`853* `event.name`:`"api_request"`

854* `event.timestamp`:ISO 8601 時間戳記854* `event.timestamp`:ISO 8601 時間戳記

855* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)855* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

856* `model`:使用的模型(例如 "claude-sonnet-5")856* `model`:使用的模型(例如 "claude-sonnet-5")

857* `cost_usd`:預估成本(USD)857* `cost_usd`:估計費用(美元)

858* `cost_usd_micros`:以百萬分之一美元為單位的預估成本,以整數發出858* `cost_usd_micros`:估計費用,以百萬分之一美元為單位,以整數發出

859* `duration_ms`:請求持續時間(毫秒)859* `duration_ms`:請求持續時間(毫秒)

860* `input_tokens`:輸入 token 數量,不包括從提示詞快取讀取或寫入的 token860* `input_tokens`:輸入 token 數量,不含從提示快取讀取或寫入的 token

861* `output_tokens`:輸出 token 數量861* `output_tokens`:輸出 token 數量

862* `cache_read_tokens`:從快取讀取的 token 數量862* `cache_read_tokens`:從快取讀取的 token 數量

863* `cache_creation_tokens`:用於建立快取的 token 數量863* `cache_creation_tokens`:用於建立快取的 token 數量

864* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。864* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。

865* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送;出現時機請參閱[事件關聯屬性](#event-correlation-attributes)表格865* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送;何時存在請參閱[事件關聯屬性](#event-correlation-attributes)表格

866* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用866* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用

867* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱867* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱

868* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。868* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。

869* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。869* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。

870 870 

871#### API 錯誤事件871#### API 錯誤事件

872 872 

873當傳送給 Claude 的 API 請求失敗時記錄。873在傳送給 Claude 的 API 請求失敗時記錄。

874 874 

875**事件名稱**:`claude_code.api_error`875**事件名稱**:`claude_code.api_error`

876 876 


879* 所有[標準屬性](#standard-attributes)879* 所有[標準屬性](#standard-attributes)

880* `event.name`:`"api_error"`880* `event.name`:`"api_error"`

881* `event.timestamp`:ISO 8601 時間戳記881* `event.timestamp`:ISO 8601 時間戳記

882* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)882* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

883* `model`:使用的模型(例如 "claude-sonnet-5")883* `model`:使用的模型(例如 "claude-sonnet-5")

884* `error`:錯誤訊息884* `error`:錯誤訊息

885* `status_code`:以數字表示的 HTTP 狀態碼。對於非 HTTP 錯誤(例如連線失敗)不存在。885* `status_code`:HTTP 狀態碼(數字)。對於非 HTTP 錯誤(例如連線失敗)不存在。

886* `duration_ms`:請求持續時間(毫秒)886* `duration_ms`:請求持續時間(毫秒)

887* `attempt`:已進行的嘗試次數,包括初始請求。[偵測重試耗盡](#detect-retry-exhaustion)說明計數何時會重新開始887* `attempt`:嘗試次數,包含初始請求。計數何時重新開始,請參閱[偵測重試耗盡](#detect-retry-exhaustion)

888* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。888* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。

889* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。即使逾時或連線錯誤等失敗從未產生伺服器 `request_id`,此值仍然可用;出現時機請參閱[事件關聯屬性](#event-correlation-attributes)表格。889* `client_request_id`:用戶端產生的 UUID,以 `x-client-request-id` 請求標頭傳送。即使逾時或連線錯誤等失敗從未產生伺服器 `request_id` 時仍可使用;何時存在請參閱[事件關聯屬性](#event-correlation-attributes)表格。

890* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用890* `speed`:`"fast"` 或 `"normal"`,表示快速模式是否啟用

891* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱891* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱

892* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。892* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。

893* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。893* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。

894 894 

895#### API 拒絕事件895#### API 拒絕事件

896 896 

897當 API 請求傳回 `stop_reason: "refusal"` 時記錄。拒絕會出現在成功的回應串流中,而非以 HTTP 錯誤的形式出現,因此 `api_error` 事件不會因拒絕而觸發。此事件可讓您追蹤拒絕頻率,並依與 `api_request` 及 `api_error` 相同的屬性將拒絕分組。897在 API 請求傳回 `stop_reason: "refusal"` 時記錄。拒絕是在成功的回應串流中傳回,而非以 HTTP 錯誤形式傳回,因此 `api_error` 事件不會因拒絕而觸發。此事件可讓您追蹤拒絕頻率,並依照與 `api_request` 和 `api_error` 相同的屬性將拒絕分組。

898 898 

899**事件名稱**:`claude_code.api_refusal`899**事件名稱**:`claude_code.api_refusal`

900 900 


903* 所有[標準屬性](#standard-attributes)903* 所有[標準屬性](#standard-attributes)

904* `event.name`:`"api_refusal"`904* `event.name`:`"api_refusal"`

905* `event.timestamp`:ISO 8601 時間戳記905* `event.timestamp`:ISO 8601 時間戳記

906* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)906* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

907* `model`:請求中的模型識別碼907* `model`:請求中的模型識別碼

908* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。908* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。

909* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱。定義請參閱 [`api_request`](#api-request-event)。909* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或 subagent 名稱。定義請參閱 [`api_request`](#api-request-event)。

910* `speed`:當[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)啟用時為 `"fast"`,否則為 `"normal"`910* `speed`:當[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md)啟用時為 `"fast"`,否則為 `"normal"`

911* `attempt`:重試嘗試的編號。第一次嘗試為 `1`。911* `attempt`:重試嘗試編號。第一次嘗試為 `1`。

912* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。912* `effort`:套用於請求的 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。當 Claude Code 未傳送 effort 等級時不存在,例如在不支援 effort 的模型上。

913* `server_fallback_hop`:當 API 的伺服器端模型備援已在不同的模型上重試此拒絕,因此使用者並未看到此特定拒絕時為 `true`。當請求以拒絕結束時為 `false`。當備援模型也拒絕時,單一回合可能會同時發出一個 `true` 的跳轉事件以及之後一個 `false` 的最終事件。913* `server_fallback_hop`:當 API 的伺服器端模型備援已在不同模型上重試此拒絕,因此使用者並未看到這次特定的拒絕時為 `true`。當請求以拒絕結束時為 `false`。當備援模型也拒絕時,單一回合可能會同時發出一個 `true` 的跳轉事件與之後一個 `false` 的最終事件。

914* `has_category`:當 API 回應帶有值為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 的 `stop_details.category` 時為 `true`。當回應未帶有類別或帶有該集合以外的值時為 `false`。當 `server_fallback_hop` 為 `true` 時不存在,因為跳轉區塊不帶有 `stop_details`。914* `has_category`:當 API 回應攜帶的 `stop_details.category` 為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 時為 `true`。當回應未攜帶類別或值不在該集合中時為 `false`。當 `server_fallback_hop` 為 `true` 時不存在,因為跳轉區塊不攜帶 `stop_details`。

915* `has_explanation`:當 API 回應帶有 `stop_details.explanation` 時為 `true`,否則為 `false`。當 `server_fallback_hop` 為 `true` 時不存在。915* `has_explanation`:當 API 回應攜帶 `stop_details.explanation` 時為 `true`,否則為 `false`。當 `server_fallback_hop` 為 `true` 時不存在。

916* `category`:API 回應中的 `stop_details.category` 值。為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 之一。僅在設定了 `OTEL_LOG_TOOL_DETAILS=1` 且 `has_category` 為 `true` 時存在。916* `category`:API 回應中的 `stop_details.category` 值。為 `"cyber"`、`"bio"`、`"frontier_llm"` 或 `"reasoning_extraction"` 之一。只有在設定了 `OTEL_LOG_TOOL_DETAILS=1` 且 `has_category` 為 `true` 時才存在。

917* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[成本計數器](#cost-counter)。917* `agent.name`、`skill.name`、`plugin.name`、`marketplace.name`、`mcp_server.name`、`mcp_tool.name`:請求的 skill、外掛、agent 與 MCP 歸屬。定義與遮蔽行為請參閱[費用計數器](#cost-counter)。

918 918 

919#### API 請求主體事件919#### API 請求主體事件

920 920 

921當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每次 API 請求嘗試記錄。每次嘗試發出一個事件,因此以調整後參數進行的重試各自會產生自己的事件。921當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每次 API 請求嘗試記錄。每次嘗試發出一個事件,因此以調整後參數進行的重試都會各自產生自己的事件。

922 922 

923**事件名稱**:`claude_code.api_request_body`923**事件名稱**:`claude_code.api_request_body`

924 924 


927* 所有[標準屬性](#standard-attributes)927* 所有[標準屬性](#standard-attributes)

928* `event.name`:`"api_request_body"`928* `event.name`:`"api_request_body"`

929* `event.timestamp`:ISO 8601 時間戳記929* `event.timestamp`:ISO 8601 時間戳記

930* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)930* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

931* `body`:JSON 序列化後的 Messages API 請求參數,例如系統提示詞、訊息與工具,在內容上限(預設 60 KB)處截斷。先前助理回合中的延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。931* `body`:JSON 序列化的 Messages API 請求參數,例如系統提示詞、訊息與工具,在內容上限處截斷(預設 60 KB)。先前 assistant 回合中的延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。

932* `body_ref`:指向包含未截斷主體之 `<dir>/<uuid>.request.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。932* `body_ref`:包含未截斷主體之 `<dir>/<uuid>.request.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。

933* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,當 `=1` 時為 UTF-16 程式碼單元933* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組數,當 `=1` 時為 UTF-16 碼元數

934* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。934* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。

935* `model`:請求參數中的模型識別碼935* `model`:請求參數中的模型識別碼

936* `query_source`:發出請求的子系統(例如 `"compact"`)936* `query_source`:發出請求的子系統(例如 `"compact"`)

937* `request_body_id`:識別此嘗試之請求主體的 UUID。成功之嘗試的 [`api_response_body` 事件](#api-response-body-event)帶有相同的值,因此您可以將回應與產生它的確切請求配對。需要 Claude Code v2.1.274 或更新版本937* `request_body_id`:識別此次嘗試之請求主體的 UUID。成功之嘗試的 [`api_response_body` 事件](#api-response-body-event)會攜帶相同的值,因此您可以將回應與產生它的確切請求配對。需要 Claude Code v2.1.274 或更新版本

938 938 

939#### API 回應主體事件939#### API 回應主體事件

940 940 

941當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每個成功的 API 回應記錄。941當設定了 `OTEL_LOG_RAW_API_BODIES` 時,針對每個成功的 API 回應記錄。

942 942 

943在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下,Claude Code 也會針對每個成功的回應,將一行 JSON 附加到 `<dir>/index.jsonl`,其欄位為 `timestamp`、`session_id`、`query_source`、`model`、`request_id`、`message_id`、`message_uuid`、`request_file` 與 `response_file`。讀取此檔案即可找出特定逐字稿訊息背後的請求與回應檔案,而無需查詢您的遙測後端。索引檔案需要 Claude Code v2.1.274 或更新版本。943在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下,Claude Code 也會針對每個成功的回應,在 `<dir>/index.jsonl` 中附加一行 JSON,包含欄位 `timestamp`、`session_id`、`query_source`、`model`、`request_id`、`message_id`、`message_uuid`、`request_file` 與 `response_file`。讀取此檔案即可找出特定逐字稿訊息背後的請求與回應檔案,而不需查詢您的遙測後端。索引檔需要 Claude Code v2.1.274 或更新版本。

944 944 

945**事件名稱**:`claude_code.api_response_body`945**事件名稱**:`claude_code.api_response_body`

946 946 


949* 所有[標準屬性](#standard-attributes)949* 所有[標準屬性](#standard-attributes)

950* `event.name`:`"api_response_body"`950* `event.name`:`"api_response_body"`

951* `event.timestamp`:ISO 8601 時間戳記951* `event.timestamp`:ISO 8601 時間戳記

952* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)952* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

953* `body`:JSON 序列化後的 Messages API 回應,包括 id、內容區塊、使用量與停止原因,在內容上限(預設 60 KB)處截斷。延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。953* `body`:JSON 序列化的 Messages API 回應,包括 id、內容區塊、用量與停止原因,在內容上限處截斷(預設 60 KB)。延伸思考內容會被遮蔽。僅在內嵌模式(`OTEL_LOG_RAW_API_BODIES=1`)下發出。

954* `body_ref`:指向包含未截斷主體之 `<dir>/<request_id>.response.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。954* `body_ref`:包含未截斷主體之 `<dir>/<request_id>.response.json` 檔案的絕對路徑。僅在檔案模式(`OTEL_LOG_RAW_API_BODIES=file:<dir>`)下發出。

955* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組,當 `=1` 時為 UTF-16 程式碼單元955* `body_length`:未截斷的主體長度。當 `OTEL_LOG_RAW_API_BODIES=file:<dir>` 時為 UTF-8 位元組數,當 `=1` 時為 UTF-16 碼元數

956* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。956* `body_truncated`:發生內嵌截斷時為 `"true"`。在檔案模式下以及未發生截斷時不存在。

957* `model`:模型識別碼957* `model`:模型識別碼

958* `query_source`:發出請求的子系統958* `query_source`:發出請求的子系統

959* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請參閱[事件關聯屬性](#event-correlation-attributes)。959* `request_id`:API 請求 ID,例如 `"req_011..."`,說明請見[事件關聯屬性](#event-correlation-attributes)。

960* `request_body_id`:此回應所回覆之 [`api_request_body` 事件](#api-request-body-event)的 `request_body_id`。需要 Claude Code v2.1.274 或更新版本960* `request_body_id`:此回應所對應之 [`api_request_body` 事件](#api-request-body-event)的 `request_body_id`。需要 Claude Code v2.1.274 或更新版本

961* `message.id`:API 指派給回應的訊息 ID,即回應主體的 `id` 欄位。需要 Claude Code v2.1.274 或更新版本961* `message.id`:API 指派給回應的訊息 ID,即回應主體的 `id` 欄位。需要 Claude Code v2.1.274 或更新版本

962* `message.uuid`:回應之最後一筆逐字稿項目的 UUID。與 `request_body_id` 搭配,可將逐字稿訊息連結到其背後的請求與回應主體。需要 Claude Code v2.1.274 或更新版本962* `message.uuid`:回應最後一筆逐字稿項目的 UUID。搭配 `request_body_id`,可將逐字稿訊息連結到其背後的請求與回應主體。需要 Claude Code v2.1.274 或更新版本

963 963 

964#### 工具決定事件964#### 工具決策事件

965 965 

966在做出工具權限決定(接受/拒絕)時記錄。966在做出工具權限決策(接受/拒絕)時記錄。

967 967 

968**事件名稱**:`claude_code.tool_decision`968**事件名稱**:`claude_code.tool_decision`

969 969 


972* 所有[標準屬性](#standard-attributes)972* 所有[標準屬性](#standard-attributes)

973* `event.name`:`"tool_decision"`973* `event.name`:`"tool_decision"`

974* `event.timestamp`:ISO 8601 時間戳記974* `event.timestamp`:ISO 8601 時間戳記

975* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)975* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

976* `tool_name`:工具名稱(例如 "Read"、"Edit"、"Write"、"NotebookEdit")976* `tool_name`:工具名稱(例如 "Read"、"Edit"、"Write"、"NotebookEdit")

977* `tool_use_id`:此次工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。977* `tool_use_id`:此工具呼叫的唯一識別碼。與傳遞給 hook 的 `tool_use_id` 相符,可讓 OTel 事件與 hook 擷取的資料相互關聯。

978* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您能將該呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含該呼叫時不存在。需要 Claude Code v2.1.310 或更新版本978* `request_id`:包含此工具呼叫之 API 回應的 [`request_id`](#event-correlation-attributes),讓您可以將此呼叫與該回應的 API 事件聯結。當該回應沒有請求 ID,或沒有任何 API 回應包含此呼叫時不存在。需要 Claude Code v2.1.310 或更新版本

979* `decision`:`"accept"` 或 `"reject"`979* `decision`:`"accept"` 或 `"reject"`

980* `tool_source`:一律出現。工具的來源,為 CLI 撰寫之值的封閉集合:980* `tool_source`:一律存在。工具的來源,為 CLI 定義的封閉值集合:

981 * `"builtin"`:CLI 本身的工具981 * `"builtin"`:CLI 自身的工具

982 * `"mcp"`:一般的 MCP 伺服器982 * `"mcp"`:一般的 MCP 伺服器

983 * `"sdk_host_builtin_mcp"`:內建於 Claude Desktop 本身的程序內伺服器,位於 Claude Desktop 擁有的工作階段中。當 Claude Desktop 從其自身的進入點(`claude-desktop`、`claude-desktop-3p` 或 `local-agent`)啟動工作階段,且該工作階段不是巢狀子工作階段時,Claude Desktop 即擁有該工作階段;巢狀工作階段(包括 Claude Code 本身產生的工作階段)會將這些伺服器回報為 `"mcp"`983 * `"sdk_host_builtin_mcp"`:內建於 Claude Desktop 本身的同程序伺服器,位於 Claude Desktop 擁有的工作階段中。當工作階段是 Claude Desktop 從其自身進入點(`claude-desktop`、`claude-desktop-3p` 或 `local-agent`)啟動,且該工作階段不是巢狀子工作階段時,Claude Desktop 即擁有該工作階段;巢狀工作階段(包括 Claude Code 本身產生的工作階段)會將這些伺服器回報為 `"mcp"`

984* `source`:決定的來源:984* `source`:決策的來源:

985 * `"config"`:未經提示即自動決定,來源為下列之一:985 * `"config"`:未經提示即自動決定,由下列來源之一決定:

986 986 

987 * 專案設定987 * 專案設定

988 * 使用者個人設定中的允許或拒絕規則988 * 使用者個人設定中的允許或拒絕規則

989 * 企業受管政策989 * 企業受管政策

990 * `--allowedTools` 或 `--disallowedTools` 旗標990 * `--allowedTools` 或 `--disallowedTools` 旗標

991 * 作用中的權限模式991 * 目前的權限模式

992 * 自動模式分類器,其判定會由同一事件記錄在 `classifier_verdict` 中992 * 自動模式分類器,其判定由同一事件記錄於 `classifier_verdict`

993 * 在同一互動式 CLI 工作階段中,於較早的權限提示時授予的剩餘工作階段授權993 * 在同一互動式 CLI 工作階段中,於較早的權限提示時授予的剩餘工作階段授權

994 * 工具本身即屬安全994 * 工具本身即屬安全

995 995 

996 `source` 值不會指出是這些來源中的哪一個相符。若要找出是哪一個拒絕了呼叫,請尋找具有相同 `tool_use_id` 的[安全事件](#safety-event),並讀取其 `category` 與 `rule_source` 屬性。部分遭拒絕的呼叫[沒有安全事件](#calls-without-a-safety-event)。996 `source` 值不會指出是哪一個來源相符。若要找出是哪一個來源拒絕了某次呼叫,請尋找具有相同 `tool_use_id` 的[安全事件](#safety-event),並讀取其 `category` 與 `rule_source` 屬性。部分遭拒絕的呼叫[沒有安全事件](#calls-without-a-safety-event)。

997 997 

998 當權限提示請求本身失敗時,Claude Code 也會回報 `"config"`。例如,當 Agent SDK 的 [`canUseTool`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#canusetool) 回呼或 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 工具傳回無效結果,或請求擱置時輸入串流關閉,該請求就會失敗。在 v2.1.216 之前,Claude Code 將這些失敗回報為 `"user_reject"`。998 當權限提示請求本身失敗時,Claude Code 也會回報 `"config"`。例如,當 Agent SDK 的 [`canUseTool`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#canusetool) 回呼或 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 工具傳回無效結果,或在請求待處理期間輸入串流關閉時,該請求就會失敗。

999 * `"hook"`:`PreToolUse` 或 `PermissionRequest` hook 傳回了決定。999 * `"hook"`:由 `PreToolUse` 或 `PermissionRequest` hook 傳回決策。

1000 * `"user_permanent"`:當使用者在權限提示中選擇「Yes, and don't ask again for ...」時發出,這會將允許規則儲存到其個人設定中。在互動式 CLI 中,僅針對該選擇本身發出;之後符合已儲存規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,初始選擇和之後的規則比對都會發出 `"user_permanent"`。視為接受。1000 * `"user_permanent"`:當使用者在權限提示中選擇「Yes, and don't ask again for ...」時發出,這會將允許規則儲存到其個人設定中。在互動式 CLI 中,只有該選擇本身會發出此值;之後符合已儲存規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,初次選擇與之後的規則相符都會發出 `"user_permanent"`。視為接受。

1001 * `"user_temporary"`:當使用者在權限提示中選擇「Yes」進行一次性核准,或在檔案編輯或讀取提示中選擇授予剩餘工作階段存取權的選項時發出。在互動式 CLI 中,僅針對該選擇本身發出;之後由該工作階段範圍授權所允許的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,該選擇和之後的比對都會發出 `"user_temporary"`。視為接受。1001 * `"user_temporary"`:當使用者在權限提示中選擇「Yes」進行一次性核准,或在檔案編輯或讀取提示中選擇授予剩餘工作階段存取權的選項時發出。在互動式 CLI 中,只有該選擇本身會發出此值;之後由該工作階段範圍授權所允許的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,該選擇與之後的相符都會發出 `"user_temporary"`。視為接受。

1002 * `"user_abort"`:當使用者未回答即關閉權限提示時發出。在 Agent SDK 和非互動式 `-p` 工作階段中,這包括在 `canUseTool` 或 `--permission-prompt-tool` 權限請求擱置時中斷回合;在 v2.1.216 之前,Claude Code 將該中斷回報為 `"user_reject"`。視為拒絕。1002 * `"user_abort"`:當使用者未作答即關閉權限提示時發出。在 Agent SDK 與非互動式 `-p` 工作階段中,這包括在 `canUseTool` 或 `--permission-prompt-tool` 權限請求待處理時中斷回合。視為拒絕。

1003 * `"user_reject"`:當使用者在提示時選擇「No」時發出。在互動式 CLI 中,僅針對該選擇本身發出;符合使用者個人設定中拒絕規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,符合個人設定中拒絕規則的呼叫會發出 `"user_reject"`。視為拒絕。1003 * `"user_reject"`:當使用者在提示時選擇「No」時發出。在互動式 CLI 中,只有該選擇本身會發出此值;符合使用者個人設定中拒絕規則的呼叫會改為發出 `"config"`。在 Agent SDK 或非互動式 `-p` 工作階段中,符合個人設定中拒絕規則的呼叫會發出 `"user_reject"`。視為拒絕。

1004* `classifier_verdict`:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)對該呼叫的判定,或在沒有判定時 Claude Code 拒絕該呼叫的原因。需要 Claude Code v2.1.301 或更新版本1004* `classifier_verdict`:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)對該呼叫的判定,或在沒有判定時 Claude Code 拒絕該呼叫的原因。需要 Claude Code v2.1.301 或更新版本

1005 1005 

1006 * `"allow"`:分類器核准了該呼叫1006 * `"allow"`:分類器核准了該呼叫

1007 * `"block"`:分類器封鎖了該呼叫。中途失敗的分類器檢查也可能以 `"block"` 結束,因此部分分類器中斷可能表現為封鎖增加,而非 `"unavailable"`1007 * `"block"`:分類器封鎖了該呼叫。中途失敗的分類器檢查也可能以 `"block"` 結束,因此分類器部分中斷時可能表現為封鎖增加,而非 `"unavailable"`

1008 * `"no_verdict"`:檢查已執行但[沒有可用的判定](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),因此 Claude Code 拒絕了該呼叫。此拒絕並不代表分類器認為該呼叫不安全1008 * `"no_verdict"`:檢查已執行但未給出[可用的判定](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),因此 Claude Code 拒絕了該呼叫。此拒絕並不代表分類器認為該呼叫不安全

1009 * `"unavailable"`:傳送給分類器的請求失敗,例如遇到速率限制、逾時或連線錯誤,因此 Claude Code 拒絕了該呼叫。在[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)中,它也標示因[伺服器未傳回安全判定](https://code.claude.com/docs/zh-TW/errors.md#the-server-returned-no-safety-verdict)而被拒絕的呼叫1009 * `"unavailable"`:傳送給分類器的請求失敗,例如遇到速率限制、逾時或連線錯誤,因此 Claude Code 拒絕了該呼叫。在使用[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)時,它也用於標示因[伺服器未傳回安全判定](https://code.claude.com/docs/zh-TW/errors.md#the-server-returned-no-safety-verdict)而遭拒絕的呼叫

1010 1010 

1011 當[分類器在 plan mode 中審查命令](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode)時,此屬性也會出現在 plan mode 呼叫上。在以下情況下此屬性不存在:1011 當[分類器在 plan mode 中審查命令](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode)時,此屬性也會出現在 plan mode 的呼叫上。在下列情況中此屬性不存在:

1012 1012 

1013 * 允許或拒絕[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)決定了該呼叫1013 * 由允許或拒絕的[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)決定該呼叫

1014 * Claude Code 在自動模式中未詢問分類器即核准了該呼叫1014 * Claude Code 在自動模式中未詢問分類器即核准了該呼叫

1015 * 使用者回答了 Claude Code 在[重複封鎖](https://code.claude.com/docs/zh-TW/permission-modes.md#repeated-block-thresholds)後顯示的提示1015 * 使用者回答了 Claude Code 在[重複封鎖](https://code.claude.com/docs/zh-TW/permission-modes.md#repeated-block-thresholds)後顯示的提示

1016 * 在沒有 `--permission-prompt-tool` 的 `-p` 執行中,Claude Code 在重複封鎖後拒絕了該呼叫,因為沒有人可以回答提示。該事件會將 `decision` 回報為 `"reject"`,並將 `source` 回報為 `"config"`1016 * 在沒有 `--permission-prompt-tool` 的 `-p` 執行中,由於沒有人能回答提示,Claude Code 在重複封鎖後拒絕了該呼叫。該事件會將 `decision` 回報為 `"reject"`,並將 `source` 回報為 `"config"`

1017* `classifier_category`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):分類器封鎖呼叫時所指名之[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config)的名稱,以小寫加底線表示,例如 Data Exfiltration 規則為 `"data_exfiltration"`。需要 Claude Code v2.1.301 或更新版本。當下列兩個條件都成立時,此屬性才會出現:1017* `classifier_category`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):分類器封鎖該呼叫時所指名之[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config)的名稱,以小寫加底線表示,例如 Data Exfiltration 規則的 `"data_exfiltration"`。需要 Claude Code v2.1.301 或更新版本。當下列兩項條件都成立時,此屬性才會存在:

1018 1018 

1019 * `classifier_verdict` 為 `"block"`1019 * `classifier_verdict` 為 `"block"`

1020 * 分類器恰好指名一條規則,且該規則是內建規則,而非您撰寫的規則1020 * 分類器恰好指名了一條規則,且該規則是內建規則,而非您撰寫的規則

1021 1021 

1022 在 v2.1.302 之前,對於由[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)決定的任何封鎖,此屬性也不存在。1022 在 v2.1.302 之前,由[伺服器端分類器審查](https://code.claude.com/docs/zh-TW/permission-modes.md#server-side-classifier-review)決定的任何封鎖上也不存在此屬性。

1023* `permission_mode`:此呼叫的權限檢查開始時作用中的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`。手動模式顯示為 `"default"`。[subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#permission-modes) 呼叫會回報 subagent 的權限模式,而非工作階段的權限模式。需要 Claude Code v2.1.301 或更新版本1023* `permission_mode`:此呼叫的權限檢查開始時所使用的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`。手動模式會顯示為 `"default"`。[subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#permission-modes) 的呼叫會回報 subagent 的權限模式,而非工作階段的權限模式。需要 Claude Code v2.1.301 或更新版本

1024* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。形式與[工具結果事件](#tool-result-event)相同,但不含 `git_commit_id` 等執行後欄位。如果權限決策透過 `updatedInput` 改寫了工具輸入,對於已接受的呼叫,其值可能與 `tool_result` 不同。當 `decision` 為 `"reject"` 時,可使用此屬性查看遭拒絕的是哪個命令。1024* `tool_parameters`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):包含工具特定參數的 JSON 字串。形式與[工具結果事件](#tool-result-event)相同,但不含 `git_commit_id` 等執行後欄位。對於已接受的呼叫,若權限決策透過 `updatedInput` 改寫了工具輸入,值可能與 `tool_result` 不同。當 `decision` 為 `"reject"` 時,可使用此屬性查看哪個命令遭拒絕。

1025 * `"sdk_host_builtin_mcp"` 工具:即使 `OTEL_LOG_TOOL_DETAILS` 關閉,也會包含 `mcp_server_name` 與 `mcp_tool_name`,因為這些名稱由主機應用程式定義;若缺少它們,在預設串流中將無法歸屬對這些內建伺服器之一的遭拒呼叫。對於使用者設定的 MCP 伺服器,事件的 `tool_name` 一律為字面值 `"mcp_tool"`,而伺服器與工具名稱只會在旗標開啟時出現在 `tool_parameters` 中;引數內容在所有情況下都需要開啟旗標。1025 * 對於 `"sdk_host_builtin_mcp"` 工具:即使 `OTEL_LOG_TOOL_DETAILS` 關閉,也會包含 `mcp_server_name` 與 `mcp_tool_name`,因為這些名稱是由主機應用程式定義的;若沒有它們,對這些內建伺服器之一的遭拒絕呼叫在預設串流中將無法歸屬。對於使用者設定的 MCP 伺服器,事件的 `tool_name` 一律是字面值 `"mcp_tool"`,而伺服器與工具名稱只會在旗標開啟時出現在 `tool_parameters` 中;引數內容在任何情況下都需要該旗標。

1026 * Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`。桌面應用程式的工作區 bash 工具同樣將 `tool_name` 回報為 `Bash`,但僅包含 `bash_command`、`full_command` 與 `timeout`1026 * 對於 Bash 工具:包含 `bash_command`、`full_command`、`timeout`、`description`、`dangerouslyDisableSandbox`。桌面應用程式的工作區 bash 工具也會將 `tool_name` 回報為 `Bash`,但只包含 `bash_command`、`full_command` 與 `timeout`

1027 * MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`1027 * 對於 MCP 工具:包含 `mcp_server_name`、`mcp_tool_name`

1028 * Skill 工具:包含 `skill_name`1028 * 對於 Skill 工具:包含 `skill_name`

1029 * Agent 工具或舊版 Task 工具:包含 `subagent_type`1029 * 對於 Agent 工具或舊版 Task 工具:包含 `subagent_type`

1030 1030 

1031如果您將 OpenTelemetry SDK 的 `OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT` 調低到低於 `tool_decision` 事件上的屬性數量,SDK 會捨棄 Claude Code 最後設定的屬性。SDK 會在其他任何屬性之前依下列順序捨棄這些屬性,並略過事件未攜帶的屬性:1031如果您將 OpenTelemetry SDK 的 `OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT` 調低到少於 `tool_decision` 事件上的屬性數量,SDK 會捨棄 Claude Code 最後設定的屬性。SDK 會在其他任何屬性之前依下列順序捨棄這些屬性,並略過事件未攜帶的屬性:

1032 1032 

10331. `parent_agent_id`10331. `parent_agent_id`

10342. `agent_id`10342. `agent_id`


10375. `classifier_category`10375. `classifier_category`

10386. `classifier_verdict`10386. `classifier_verdict`

1039 1039 

1040在 Claude Code v2.1.302 或更新版本中,`permission_mode`、`classifier_category` 與 `classifier_verdict` 會依此順序捨棄。`parent_agent_id`、`agent_id` 與 `request_id` 需要 v2.1.310 或更新版本。1040在 Claude Code v2.1.302 或更新版本上,`permission_mode`、`classifier_category` 與 `classifier_verdict` 會依此順序捨棄。`parent_agent_id`、`agent_id` 與 `request_id` 需要 v2.1.310 或更新版本。

1041 1041 

1042#### 安全事件1042#### 安全事件

1043 1043 

1044當檢查拒絕工具呼叫或要求權限提示時記錄,但[沒有安全事件的呼叫](#calls-without-a-safety-event)除外。當[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕連線或請求時,以及當 hook 封鎖結果時,也會記錄。需要 Claude Code v2.1.307 或更新版本。1044在檢查拒絕工具呼叫或需要權限提示時記錄,[沒有安全事件的呼叫](#calls-without-a-safety-event)除外。當[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕連線或請求,以及 hook 封鎖結果時也會記錄。需要 Claude Code v2.1.307 或更新版本。

1045 1045 

1046此事件會與其他事件一同匯出,沒有獨立的設定。事件本身的屬性不包含命令文字、檔案路徑、主機名稱,或 MCP 伺服器與工具名稱。該記錄也會攜帶每個事件都有的[標準屬性](#standard-attributes),其中可能包括 `workspace.host_paths` 與[儲存庫屬性](#repository-attributes)。若要查看事件背後的命令或 MCP 工具,請設定 `OTEL_LOG_TOOL_DETAILS=1`,並讀取相符之 `tool_decision` 事件上的 `tool_parameters`。1046此事件會與其他事件一起匯出,沒有獨立的設定。事件本身的屬性不包含命令文字、檔案路徑、主機名稱,或 MCP 伺服器與工具名稱。該記錄也會攜帶每個事件都有的[標準屬性](#standard-attributes),其中可能包括 `workspace.host_paths` 與[儲存庫屬性](#repository-attributes)。若要查看事件背後的命令或 MCP 工具,請設定 `OTEL_LOG_TOOL_DETAILS=1`,並讀取相符之 `tool_decision` 事件上的 `tool_parameters`。

1047 1047 

1048**事件名稱**:`claude_code.safety_event`1048**事件名稱**:`claude_code.safety_event`

1049 1049 


1054* `event.timestamp`:ISO 8601 時間戳記1054* `event.timestamp`:ISO 8601 時間戳記

1055* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1055* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1056* `category`:檢查或結果,為一個[類別值](#safety-event-categories)1056* `category`:檢查或結果,為一個[類別值](#safety-event-categories)

1057* `decision`:`"accept"`、`"reject"`,或在 hook 封鎖結果或回合結束時為 `"sent_back"`1057* `decision`:`"accept"`、`"reject"`,或當 hook 封鎖結果或回合結束時為 `"sent_back"`

1058* `decision_source`:由誰或什麼做出決定,為 [`tool_decision`](#tool-decision-event) 的 `source` 值或 `"other"`1058* `decision_source`:做出決定的主體或機制,為 [`tool_decision`](#tool-decision-event) 的 `source` 值或 `"other"`

1059* `reason_code`:檢查的原因,例如 `"rule:policySettings"`、`"mode:dontAsk"`、`"hook:PreToolUse"`、`"classifier:auto-mode"`、`"bashMiss:too-complex"` 或 `"unknown"`1059* `reason_code`:檢查的原因,例如 `"rule:policySettings"`、`"mode:dontAsk"`、`"hook:PreToolUse"`、`"classifier:auto-mode"`、`"bashMiss:too-complex"` 或 `"unknown"`

1060* `reason_type`:檢查的原因類型,例如 `"rule"`、`"subcommandResults"`、`"mode"`、`"hook"`、`"classifier"` 或 `"asyncAgent"`1060* `reason_type`:檢查的原因類型,例如 `"rule"`、`"subcommandResults"`、`"mode"`、`"hook"`、`"classifier"` 或 `"asyncAgent"`

1061* `rule_source`:相關規則的設定來源,例如 `"policySettings"`、`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"cliArg"` 或 `"session"`1061* `rule_source`:所涉規則的設定來源,例如 `"policySettings"`、`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"cliArg"` 或 `"session"`

1062* `grant_scope`:對於未將規則儲存到設定檔即獲核准的提示,為 `"once"` 或 `"session"`1062* `grant_scope`:對於未將規則儲存到設定檔即核准的提示,為 `"once"` 或 `"session"`

1063* `circuit_breaker`:內建的安全檢查,例如 `"dangerousRemoval"`、`"outsideReadsBlocked"` 或 `"claudeSettingsFile"`1063* `circuit_breaker`:內建的安全檢查,例如 `"dangerousRemoval"`、`"outsideReadsBlocked"` 或 `"claudeSettingsFile"`

1064* `classifier_category`:在 `OTEL_LOG_TOOL_DETAILS=1` 時,為自動模式封鎖背後的[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config),例如 `"data_exfiltration"`1064* `classifier_category`:在 `OTEL_LOG_TOOL_DETAILS=1` 時,自動模式封鎖背後的[內建規則](https://code.claude.com/docs/zh-TW/auto-mode-config.md#inspect-the-defaults-and-your-effective-config),例如 `"data_exfiltration"`

1065* `hook_event`:`PreToolUse` hook 為 `"pre_tool_use"`,在 `"hook_review"` 事件上則為 `"post_tool_use"`、`"post_tool_use_failure"`、`"stop"` 或 `"subagent_stop"`1065* `hook_event`:`PreToolUse` hook 為 `"pre_tool_use"`,或在 `"hook_review"` 事件上為 `"post_tool_use"`、`"post_tool_use_failure"`、`"stop"` 或 `"subagent_stop"`

1066* `tool_class`:Bash 與 [Monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool) 為 `"bash"`,`"powershell"`,Read、Edit、Write、NotebookEdit、Glob 與 Grep 為 `"file"`,WebFetch 與 WebSearch 為 `"web"`,`"mcp"`,或 `"other"`1066* `tool_class`:Bash 與 [Monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool) 為 `"bash"`,`"powershell"`,Read、Edit、Write、NotebookEdit、Glob 與 Grep 為 `"file"`,WebFetch 與 WebSearch 為 `"web"`,`"mcp"`,或 `"other"`

1067* `tool_name`:工具的名稱,例如內建工具的 `"Bash"`,或 `"mcp_tool"`、`"skill_tool"`、`"dynamic_tool"` 或 `"other_tool"`1067* `tool_name`:工具名稱,例如內建工具的 `"Bash"`,或 `"mcp_tool"`、`"skill_tool"`、`"dynamic_tool"` 或 `"other_tool"`

1068* `tool_source`:`"builtin"`、`"mcp"` 或 `"sdk_host_builtin_mcp"`,與 [`tool_decision`](#tool-decision-event) 上相同1068* `tool_source`:`"builtin"`、`"mcp"` 或 `"sdk_host_builtin_mcp"`,與 [`tool_decision`](#tool-decision-event) 上相同

1069* `permission_mode`:檢查時該呼叫的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`1069* `permission_mode`:檢查時該呼叫的[權限模式](https://code.claude.com/docs/zh-TW/permission-modes.md):`"default"`、`"plan"`、`"acceptEdits"`、`"bypassPermissions"`、`"dontAsk"` 或 `"auto"`

1070* `tool_use_id`:呼叫的 ID,與 `tool_decision` 和 `tool_result` 上相同1070* `tool_use_id`:呼叫的 ID,與 `tool_decision` 和 `tool_result` 上相同

1071* `sandbox_violation_count`:沙箱的網路代理伺服器拒絕了該呼叫之命令多少個不同的連線或請求,以字串表示,為 `"0"` 至 `"20"`。只會計算在前景完成之沙箱化命令的拒絕1071* `sandbox_violation_count`:沙箱的網路代理伺服器拒絕了該呼叫之命令的多少個不同連線或請求,以字串表示,範圍為 `"0"` 到 `"20"`。僅計算在前景完成之沙箱化命令的拒絕

1072* `sandbox_enabled`:若工作階段已開啟[沙箱機制](https://code.claude.com/docs/zh-TW/sandboxing.md)則為 `"true"`,否則為 `"false"`1072* `sandbox_enabled`:若工作階段啟用了[沙箱機制](https://code.claude.com/docs/zh-TW/sandboxing.md)則為 `"true"`,否則為 `"false"`

1073 1073 

1074以下是受管設定的拒絕規則拒絕 Bash 命令時,事件本身的屬性:1074以下是受管設定的拒絕規則拒絕 Bash 命令時,事件本身的屬性:

1075 1075 


1093 1093 

1094##### 安全事件類別1094##### 安全事件類別

1095 1095 

1096| 值 | 檢查或結果 | 詳細屬性 |1096| 值 | 檢查或結果 | 詳細資訊屬性 |

1097| - | - | - |1097| - | - | - |

1098| `"permission_rule"` | 受管設定以外的拒絕或詢問[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions) | `rule_source` |1098| `"permission_rule"` | 受管設定以外的拒絕或詢問[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions) | `rule_source` |

1099| `"managed_policy"` | 來自[受管設定](https://code.claude.com/docs/zh-TW/permissions.md#managed-settings)的拒絕或詢問規則 | `rule_source` |1099| `"managed_policy"` | 來自[受管設定](https://code.claude.com/docs/zh-TW/permissions.md#managed-settings)的拒絕或詢問規則 | `rule_source` |

1100| `"permission_mode"` | [`dontAsk`](https://code.claude.com/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 或 [plan](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 模式,或在無法顯示提示的工作階段中(例如使用 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時)出現的[無類別](#prompts-with-no-category)提示 | `reason_code`、`reason_type` |1100| `"permission_mode"` | [`dontAsk`](https://code.claude.com/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 或 [plan](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode) 模式,或在無法顯示提示的工作階段中(例如使用 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時)出現的[無類別](#prompts-with-no-category)提示 | `reason_code`、`reason_type` |

1101| `"hook"` | hook,例如 [`PreToolUse`](https://code.claude.com/docs/zh-TW/hooks#pretooluse) 或 [`PermissionRequest`](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) | `hook_event`、`reason_code` |1101| `"hook"` | hook,例如 [`PreToolUse`](https://code.claude.com/docs/zh-TW/hooks#pretooluse) 或 [`PermissionRequest`](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) | `hook_event`、`reason_code` |

1102| `"auto_mode_block"` | 自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)封鎖了該呼叫 | `classifier_category` |1102| `"auto_mode_block"` | 自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#how-the-classifier-evaluates-actions)封鎖了該呼叫 | `classifier_category` |

1103| `"auto_mode_no_verdict"` | 沒有可用的[分類器判定結果](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),例如在請求失敗之後 | `reason_code` |1103| `"auto_mode_no_verdict"` | 沒有可用的[分類器判定](https://code.claude.com/docs/zh-TW/errors.md#auto-mode-cannot-determine-the-safety-of-an-action),例如在請求失敗之後 | `reason_code` |

1104| `"safety_check"` | 內建的安全檢查,例如針對在您的[工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#working-directories)以外進行的 Read、Edit 或 Write | `circuit_breaker` |1104| `"safety_check"` | 內建的安全檢查,例如針對在您的[工作目錄](https://code.claude.com/docs/zh-TW/permissions.md#working-directories)以外進行的 Read、Edit 或 Write | `circuit_breaker` |

1105| `"static_analysis"` | Bash 或 Monitor 命令的撰寫方式,例如過於複雜而無法分析的命令 | `reason_code` |1105| `"static_analysis"` | Bash 或 Monitor 命令的撰寫方式,例如過於複雜而無法分析的命令 | `reason_code` |

1106| `"sandbox_override"` | [在沙箱外執行命令](https://code.claude.com/docs/zh-TW/sandboxing.md#the-unsandboxed-retry-escape-hatch)的提示 | `reason_code` |1106| `"sandbox_override"` | [在沙箱外執行命令](https://code.claude.com/docs/zh-TW/sandboxing.md#the-unsandboxed-retry-escape-hatch)的提示 | `reason_code` |

1107| `"user_rejected"` | 有人拒絕或關閉了[無類別](#prompts-with-no-category)或僅由 hook 要求的提示,或 `canUseTool` 回呼或 `--permission-prompt-tool` 工具拒絕了此類提示 | `decision_source` |1107| `"user_rejected"` | 有人拒絕或關閉了[無類別](#prompts-with-no-category)或僅由 hook 要求的提示,或 `canUseTool` 回呼或 `--permission-prompt-tool` 工具拒絕了這類提示 | `decision_source` |

1108| `"sandbox_network"` | 呼叫已執行,且[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕了連線或請求 | `sandbox_violation_count` |1108| `"sandbox_network"` | 呼叫已執行,且[沙箱的網路代理伺服器](https://code.claude.com/docs/zh-TW/sandboxing.md#network-isolation)拒絕了連線或請求 | `sandbox_violation_count` |

1109| `"sandbox_other"` | 類似 `"sandbox_network"`,但沒有任何遭拒絕的目標可解讀為主機名稱或 IP 位址 | `sandbox_violation_count` |1109| `"sandbox_other"` | 與 `"sandbox_network"` 類似,但沒有任何遭拒絕的目標可解讀為主機名稱或 IP 位址 | `sandbox_violation_count` |

1110| `"hook_review"` | hook [封鎖了呼叫的結果](https://code.claude.com/docs/zh-TW/hooks.md#posttooluse-decision-control)或[回合的結束](https://code.claude.com/docs/zh-TW/hooks.md#stop-decision-control) | `hook_event` |1110| `"hook_review"` | hook [封鎖了呼叫的結果](https://code.claude.com/docs/zh-TW/hooks.md#posttooluse-decision-control)或[回合的結束](https://code.claude.com/docs/zh-TW/hooks.md#stop-decision-control) | `hook_event` |

1111| `"other"` | 其他值皆無法描述的拒絕 | `reason_code` |1111| `"other"` | 其他值皆無法描述的拒絕 | `reason_code` |

1112 1112 

1113若要在任何 `category` 下找出代理伺服器的拒絕,請篩選存在且不為 `"0"` 的 `sandbox_violation_count`。1113若要找出任何 `category` 下的代理伺服器拒絕,請篩選存在且不為 `"0"` 的 `sandbox_violation_count`。

1114 1114 

1115##### 沒有安全事件的呼叫1115##### 沒有安全事件的呼叫

1116 1116 

1117若要找出因無人能回答[無類別提示](#prompts-with-no-category)而遭拒絕的呼叫,請尋找回報 `"reject"`、`source` 為 `"config"`,且沒有任何安全事件共用其 `tool_use_id` 的 [`tool_decision`](#tool-decision-event) 事件。這類拒絕發生在既沒有 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 也沒有 `--permission-prompts none` 的 `-p` 執行中。1117若要找出因無人能回答[無類別提示](#prompts-with-no-category)而遭拒絕的呼叫,請尋找回報 `"reject"`、`source` 為 `"config"`,且沒有安全事件共用其 `tool_use_id` 的 [`tool_decision`](#tool-decision-event) 事件。這類拒絕發生在既沒有 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 也沒有 `--permission-prompts none` 的 `-p` 執行中。

1118 1118 

1119對於下列這類呼叫,請檢查其 `tool_decision` 事件,因為除了在執行後傳送的 [`"sandbox_network"`、`"sandbox_other"` 或 `"hook_review"` 事件](#safety-event-categories)之外,它們沒有安全事件:1119對於下列這類呼叫,請檢查其 `tool_decision` 事件,因為除了在執行後發送的 [`"sandbox_network"`、`"sandbox_other"` 或 `"hook_review"` 事件](#safety-event-categories)之外,它們沒有安全事件:

1120 1120 

1121* 在無類別提示中獲得核准的呼叫1121* 在無類別提示中獲得核准的呼叫

1122* 在僅由 `PreToolUse` hook 要求的提示中,由 `canUseTool` 回呼或 `--permission-prompt-tool` 工具核准的呼叫1122* 在僅由 `PreToolUse` hook 要求的提示中,由 `canUseTool` 回呼或 `--permission-prompt-tool` 工具核准的呼叫


1124 1124 

1125##### 無類別的提示1125##### 無類別的提示

1126 1126 

1127當沒有任何 [`category` 值](#safety-event-categories)指名提示的檢查時,該提示即為無類別,例如在 `default` 模式中針對工作目錄內編輯的提示。1127當沒有任何 [`category` 值](#safety-event-categories)指名某個提示的檢查時,該提示即為無類別,例如針對工作目錄內編輯的 `default` 模式提示。

1128 1128 

1129#### 權限模式變更事件1129#### 權限模式變更事件

1130 1130 

1131在權限模式變更時記錄,例如透過 `Shift+Tab` 循環切換、退出 plan mode,或自動模式閘門檢查。1131在權限模式變更時記錄,例如透過 `Shift+Tab` 循環切換、退出 plan mode,或自動模式的閘門檢查。

1132 1132 

1133若要依每個工具呼叫受檢查時的權限模式將其分組,請使用[工具決定事件](#tool-decision-event)上的 `permission_mode`。1133若要依每個工具呼叫接受檢查時的權限模式將其分組,請使用[工具決策事件](#tool-decision-event)上的 `permission_mode`。

1134 1134 

1135**事件名稱**:`claude_code.permission_mode_changed`1135**事件名稱**:`claude_code.permission_mode_changed`

1136 1136 


1139* 所有[標準屬性](#standard-attributes)1139* 所有[標準屬性](#standard-attributes)

1140* `event.name`:`"permission_mode_changed"`1140* `event.name`:`"permission_mode_changed"`

1141* `event.timestamp`:ISO 8601 時間戳記1141* `event.timestamp`:ISO 8601 時間戳記

1142* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1142* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1143* `from_mode`:先前的權限模式,例如 `"default"`、`"plan"`、`"acceptEdits"`、`"auto"` 或 `"bypassPermissions"`1143* `from_mode`:先前的權限模式,例如 `"default"`、`"plan"`、`"acceptEdits"`、`"auto"` 或 `"bypassPermissions"`

1144* `to_mode`:新的權限模式1144* `to_mode`:新的權限模式

1145* `trigger`:造成變更的原因,例如 `"shift_tab"`、`"exit_plan_mode"` 或 `"auto_gate_denied"`。某些變更不具此屬性,例如 SDK 透過 [`setPermissionMode()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#query-object) 設定權限模式時1145* `trigger`:造成變更的原因,例如 `"shift_tab"`、`"exit_plan_mode"` 或 `"auto_gate_denied"`。某些變更中不存在,例如 SDK 透過 [`setPermissionMode()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#query-object) 設定權限模式時

1146 1146 

1147#### 身分驗證事件1147#### 身分驗證事件

1148 1148 


1155* 所有[標準屬性](#standard-attributes)1155* 所有[標準屬性](#standard-attributes)

1156* `event.name`:`"auth"`1156* `event.name`:`"auth"`

1157* `event.timestamp`:ISO 8601 時間戳記1157* `event.timestamp`:ISO 8601 時間戳記

1158* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1158* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1159* `action`:`"login"` 或 `"logout"`1159* `action`:`"login"` 或 `"logout"`

1160* `success`:`"true"` 或 `"false"`1160* `success`:`"true"` 或 `"false"`

1161* `auth_method`:身分驗證方式,例如 `"oauth"`1161* `auth_method`:身分驗證方式,例如 `"oauth"`

1162* `error_category`:動作失敗時的錯誤種類分類。永遠不會包含原始錯誤訊息1162* `error_category`:動作失敗時的錯誤種類分類。絕不包含原始錯誤訊息

1163* `status_code`:當動作因 HTTP 錯誤而失敗時,以字串表示的 HTTP 狀態碼1163* `status_code`:動作因 HTTP 錯誤而失敗時的 HTTP 狀態碼(字串)

1164 1164 

1165#### MCP 伺服器連線事件1165#### MCP 伺服器連線事件

1166 1166 


1173* 所有[標準屬性](#standard-attributes)1173* 所有[標準屬性](#standard-attributes)

1174* `event.name`:`"mcp_server_connection"`1174* `event.name`:`"mcp_server_connection"`

1175* `event.timestamp`:ISO 8601 時間戳記1175* `event.timestamp`:ISO 8601 時間戳記

1176* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1176* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1177* `status`:`"connected"`、`"failed"` 或 `"disconnected"`1177* `status`:`"connected"`、`"failed"` 或 `"disconnected"`

1178* `transport_type`:伺服器傳輸方式,例如 `"stdio"`、`"sse"` 或 `"http"`1178* `transport_type`:伺服器傳輸方式,例如 `"stdio"`、`"sse"` 或 `"http"`

1179* `server_scope`:伺服器設定所在的範圍,例如 `"user"`、`"project"` 或 `"local"`1179* `server_scope`:伺服器的設定範圍,例如 `"user"`、`"project"` 或 `"local"`

1180* `duration_ms`:連線嘗試的持續時間(毫秒)1180* `duration_ms`:連線嘗試持續時間(毫秒)

1181* `error_code`:連線失敗時的錯誤代碼1181* `error_code`:連線失敗時的錯誤碼

1182* `is_plugin`:當伺服器由外掛提供時為 `true`,否則為 `false`1182* `is_plugin`:伺服器由外掛提供時為 `true`,否則為 `false`

1183* `plugin_id_hash`(當 `is_plugin` 為 `true` 時):外掛名稱與市集的穩定雜湊值,可在不暴露名稱的情況下依外掛將事件分組。Claude Code 的計算方式如[外掛載入事件](#plugin-loaded-event)中所述1183* `plugin_id_hash`(當 `is_plugin` 為 `true` 時):外掛名稱與市集的穩定雜湊值,用於依外掛將事件分組而不暴露名稱。Claude Code 依照[外掛載入事件](#plugin-loaded-event)中所述的方式計算此值

1184* `plugin.name`(當 `is_plugin` 為 `true` 時):提供該伺服器之外掛的名稱。對於第三方外掛,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為字面字串 `"third-party"`;這可預設防止第三方外掛名稱出現在日誌中。來自 Anthropic 官方來源的外掛一律以名稱識別。`plugin_id_hash` 與 `plugin.name` 屬性會流向您自己的監控後端,不會傳送給 Anthropic1184* `plugin.name`(當 `is_plugin` 為 `true` 時):提供該伺服器之外掛的名稱。對於第三方外掛,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則為字面字串 `"third-party"`;這可預設防止第三方外掛名稱出現在日誌中。來自 Anthropic 官方來源的外掛一律以名稱識別。`plugin_id_hash` 與 `plugin.name` 屬性會流向您自己的監控後端,不會傳送給 Anthropic

1185* `server_name`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):設定的伺服器名稱1185* `server_name`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):設定的伺服器名稱

1186* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):連線失敗時的完整錯誤訊息1186* `error`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):連線失敗時的完整錯誤訊息

1187 1187 

1188#### 內部錯誤事件1188#### 內部錯誤事件

1189 1189 

1190當 Claude Code 捕捉到非預期的內部錯誤時記錄。僅記錄錯誤類別名稱與 errno 風格的代碼。永遠不會包含錯誤訊息與堆疊追蹤。在搭配 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 執行時,或設定了 `DISABLE_ERROR_REPORTING` 時,不會發出此事件。1190在 Claude Code 攔截到非預期的內部錯誤時記錄。只會記錄錯誤類別名稱與 errno 樣式的代碼。絕不包含錯誤訊息與堆疊追蹤。在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上執行時,或設定了 `DISABLE_ERROR_REPORTING` 時,不會發出此事件。

1191 1191 

1192**事件名稱**:`claude_code.internal_error`1192**事件名稱**:`claude_code.internal_error`

1193 1193 


1196* 所有[標準屬性](#standard-attributes)1196* 所有[標準屬性](#standard-attributes)

1197* `event.name`:`"internal_error"`1197* `event.name`:`"internal_error"`

1198* `event.timestamp`:ISO 8601 時間戳記1198* `event.timestamp`:ISO 8601 時間戳記

1199* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1199* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1200* `error_name`:錯誤類別名稱,例如 `"TypeError"` 或 `"SyntaxError"`1200* `error_name`:錯誤類別名稱,例如 `"TypeError"` 或 `"SyntaxError"`

1201* `error_code`:錯誤上存在時的 Node.js errno 代碼,例如 `"ENOENT"`1201* `error_code`:錯誤上存在的 Node.js errno 代碼,例如 `"ENOENT"`

1202 1202 

1203#### 外掛安裝事件1203#### 外掛安裝事件

1204 1204 

1205在外掛完成安裝時記錄,涵蓋 `claude plugin install` CLI 命令與互動式 `/plugin` UI。1205在外掛完成安裝時記錄,來源包括 `claude plugin install` CLI 命令與互動式 `/plugin` UI。

1206 1206 

1207**事件名稱**:`claude_code.plugin_installed`1207**事件名稱**:`claude_code.plugin_installed`

1208 1208 


1211* 所有[標準屬性](#standard-attributes)1211* 所有[標準屬性](#standard-attributes)

1212* `event.name`:`"plugin_installed"`1212* `event.name`:`"plugin_installed"`

1213* `event.timestamp`:ISO 8601 時間戳記1213* `event.timestamp`:ISO 8601 時間戳記

1214* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1214* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1215* `marketplace.is_official`:若市集為 Anthropic 官方市集則為 `"true"`,否則為 `"false"`1215* `marketplace.is_official`:若市集是 Anthropic 官方市集則為 `"true"`,否則為 `"false"`

1216* `install.trigger`:`"cli"` 或 `"ui"`1216* `install.trigger`:`"cli"` 或 `"ui"`

1217* `plugin.name`:已安裝外掛的名稱。對於第三方市集,僅在 `OTEL_LOG_TOOL_DETAILS=1` 時包含1217* `plugin.name`:已安裝外掛的名稱。對於第三方市集,只有在 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含

1218* `plugin.version`:市集項目中宣告的外掛版本。對於第三方市集,僅在 `OTEL_LOG_TOOL_DETAILS=1` 時包含1218* `plugin.version`:在市集項目中宣告的外掛版本。對於第三方市集,只有在 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含

1219* `marketplace.name`:外掛的安裝來源市集。對於第三方市集,僅在 `OTEL_LOG_TOOL_DETAILS=1` 時包含1219* `marketplace.name`:外掛的安裝來源市集。對於第三方市集,只有在 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含

1220 1220 

1221#### 外掛載入事件1221#### 外掛已載入事件

1222 1222 

1223在工作階段開始時,針對每個已啟用的外掛記錄一次。可使用此事件盤點整個裝置群中作用中的外掛,作為記錄安裝動作本身之 `plugin_installed` 的補充。1223在工作階段開始時,針對每個已啟用的外掛記錄一次。使用此事件盤點整個機群中有哪些外掛處於啟用狀態,作為 `plugin_installed`(記錄安裝動作本身)的補充。

1224 1224 

1225**事件名稱**:`claude_code.plugin_loaded`1225**事件名稱**:`claude_code.plugin_loaded`

1226 1226 


1229* 所有[標準屬性](#standard-attributes)1229* 所有[標準屬性](#standard-attributes)

1230* `event.name`:`"plugin_loaded"`1230* `event.name`:`"plugin_loaded"`

1231* `event.timestamp`:ISO 8601 時間戳記1231* `event.timestamp`:ISO 8601 時間戳記

1232* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1232* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1233* `plugin.name`:外掛名稱。對於官方市集與內建套件以外的外掛,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為 `"third-party"`1233* `plugin.name`:外掛名稱。對於官方市集與內建套件以外的外掛,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`

1234* `marketplace.name`:外掛的安裝來源市集(已知時)。在與 `plugin.name` 相同的條件下遮蔽為 `"third-party"`1234* `marketplace.name`:安裝該外掛的來源市集(若已知)。在與 `plugin.name` 相同的條件下會被遮蔽為 `"third-party"`

1235* `plugin.version`:外掛資訊清單中的版本。僅在名稱未遮蔽且資訊清單宣告了版本時包含1235* `plugin.version`:外掛 manifest 中的版本。僅在名稱未被遮蔽且 manifest 宣告了版本時才會包含

1236* `plugin.scope`:外掛的來源類別:`"official"`、`"community"`、`"org"`、`"user-local"` 或 `"default-bundle"`1236* `plugin.scope`:外掛的來源類別:`"official"`、`"community"`、`"org"`、`"user-local"` 或 `"default-bundle"`

1237* `enabled_via`:外掛被啟用的方式:`"default-enable"`、`"org-policy"`、`"admin-install"`、`"seed-mount"` 或 `"user-install"`。`"admin-install"` 值表示該外掛在 [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) 中被設定為您組織的必要或自動安裝外掛。在 v2.1.246 之前,Claude Code 會將這些外掛回報為 `"user-install"` 或 `"seed-mount"`1237* `enabled_via`:外掛被啟用的方式:`"default-enable"`、`"org-policy"`、`"admin-install"`、`"seed-mount"` 或 `"user-install"`。`"admin-install"` 值表示該外掛在[**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) 中被設為您組織的必要安裝或自動安裝。在 v2.1.246 之前,Claude Code 會將這些外掛回報為 `"user-install"` 或 `"seed-mount"`

1238* `plugin_id_hash`:外掛名稱與市集的確定性雜湊值,僅傳送給您設定的匯出器。可讓您在不記錄名稱的情況下,計算整個裝置群中載入的不同第三方外掛數量。對於[從 claude.ai 同步的外掛](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins),Claude Code 會以 claude.ai 為該外掛回報的市集名稱(否則為 `synced`)與外掛名稱一起計算雜湊。在 v2.1.246 之前,Claude Code 未在雜湊中使用 claude.ai 回報的市集名稱1238* `plugin_id_hash`:外掛名稱與市集的確定性雜湊值,僅傳送至您設定的匯出器。讓您可以計算整個機群中載入的不同第三方外掛數量,而無需記錄其名稱。對於[從 claude.ai 同步的外掛](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins),Claude Code 會將外掛名稱與 claude.ai 為該外掛回報的市集名稱一起雜湊,若無則使用 `synced`。在 v2.1.246 之前,Claude Code 不會在雜湊中使用 claude.ai 回報的市集名稱

1239* `has_hooks`:外掛是否透過 [hook 設定](https://code.claude.com/docs/zh-TW/plugins/components.md#hooks)或以 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#how-a-mod-works) 形式提供 hook1239* `has_hooks`:外掛是否透過 [hook 設定](https://code.claude.com/docs/zh-TW/plugins/components.md#hooks)或作為 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#how-a-mod-works) 提供 hook

1240* `has_mcp`:外掛是否提供 MCP 伺服器1240* `has_mcp`:外掛是否提供 MCP 伺服器

1241* `host_owned_mcp`:當 SDK 主機管理此外掛的 MCP 連線,且 Claude Code 略過讀取外掛的 MCP 伺服器設定時為 `true`,否則為 `false`1241* `host_owned_mcp`:當 SDK 主機管理此外掛的 MCP 連線且 Claude Code 略過讀取外掛的 MCP 伺服器設定時為 `true`,否則為 `false`

1242* `skill_path_count`:外掛宣告的 skill 目錄數量1242* `skill_path_count`:外掛宣告的 skill 目錄數量

1243* `command_path_count`:外掛宣告的命令目錄數量1243* `command_path_count`:外掛宣告的命令目錄數量

1244* `agent_path_count`:外掛宣告的 agent 目錄數量1244* `agent_path_count`:外掛宣告的 agent 目錄數量

1245* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。在安全模式下,此事件僅回報已設定的清單;外掛的命令、skill、hook 與 MCP 伺服器不會載入。需要 Claude Code v2.1.169 或更新版本1245* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。在安全模式下,此事件僅回報已設定的清單;外掛的命令、skill、hook 與 MCP 伺服器不會載入。需要 Claude Code v2.1.169 或更新版本

1246 1246 

1247#### Skill 啟用事件1247#### Skill 已啟動事件

1248 1248 

1249在 skill 被呼叫時記錄,無論是 Claude 透過 Skill 工具呼叫,或是您以 `/` 命令執行。1249在 skill 被叫用時記錄,無論是 Claude 透過 Skill 工具呼叫,還是您以 `/` 命令執行。

1250 1250 

1251**事件名稱**:`claude_code.skill_activated`1251**事件名稱**:`claude_code.skill_activated`

1252 1252 


1255* 所有[標準屬性](#standard-attributes)1255* 所有[標準屬性](#standard-attributes)

1256* `event.name`:`"skill_activated"`1256* `event.name`:`"skill_activated"`

1257* `event.timestamp`:ISO 8601 時間戳記1257* `event.timestamp`:ISO 8601 時間戳記

1258* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1258* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1259* `skill.name`:skill 的名稱。對於使用者定義與第三方外掛的 skill,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為預留值 `"custom_skill"`1259* `skill.name`:skill 的名稱。對於使用者定義及第三方外掛的 skill,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則值為預留位置 `"custom_skill"`

1260* `invocation_trigger`:skill 的觸發方式(`"user-slash"`、`"claude-proactive"` 或 `"nested-skill"`)1260* `invocation_trigger`:skill 的觸發方式(`"user-slash"`、`"claude-proactive"` 或 `"nested-skill"`)

1261* `skill.source`:skill 的載入來源(例如 `"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)1261* `skill.source`:skill 的載入來源(例如 `"bundled"`、`"userSettings"`、`"projectSettings"`、`"plugin"`)

1262* `skill.kind`:當 skill 為工作流程 skill 時為 `"workflow"`。否則不存在1262* `skill.kind`:當 skill 為工作流程 skill 時為 `"workflow"`,否則不存在

1263* `plugin.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,為其所屬外掛的名稱1263* `plugin.name`(當設定 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,所屬外掛的名稱

1264* `marketplace.name`(當 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,為所屬外掛的安裝來源市集1264* `marketplace.name`(當設定 `OTEL_LOG_TOOL_DETAILS=1` 或外掛來自官方市集時):當 skill 由外掛提供時,安裝所屬外掛的來源市集

1265 1265 

1266#### @ 提及事件1266#### @ 提及事件

1267 1267 

1268當 Claude Code 解析提示詞中的 `@` 提及時記錄。並非每個提及都會發出事件:提早結束的路徑(例如權限拒絕、檔案過大、PDF 參考附件與目錄列出失敗)會直接返回而不記錄。1268在 Claude Code 解析提示詞中的 `@` 提及時記錄。並非每個提及都會發出事件:提前結束的路徑(例如權限拒絕、檔案過大、PDF 參照附件,以及目錄列出失敗)會直接返回而不記錄。

1269 1269 

1270每次 Claude Code 讀取提示詞時,最多會記錄 100 個 `mention_type` 為 `"agent"` 的事件,以及 100 個為 `"mcp_resource"` 的事件。超過任一上限的提及仍會被解析,但不會發出事件。1270每次 Claude Code 讀取提示詞時,`mention_type` 為 `"agent"` 的事件最多記錄 100 個,`"mcp_resource"` 的事件也最多記錄 100 個。超過任一上限的提及仍會被解析,但不會發出事件。

1271 1271 

1272**事件名稱**:`claude_code.at_mention`1272**事件名稱**:`claude_code.at_mention`

1273 1273 


1276* 所有[標準屬性](#standard-attributes)1276* 所有[標準屬性](#standard-attributes)

1277* `event.name`:`"at_mention"`1277* `event.name`:`"at_mention"`

1278* `event.timestamp`:ISO 8601 時間戳記1278* `event.timestamp`:ISO 8601 時間戳記

1279* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1279* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1280* `mention_type`:提及的類型(`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`、`"peer"`)。`"peer"` 值表示您提及了[您的其他 Claude Code 工作階段之一](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)。需要 Claude Code v2.1.232 或更新版本1280* `mention_type`:提及的類型(`"file"`、`"directory"`、`"agent"`、`"mcp_resource"`、`"peer"`)。`"peer"` 值表示您提及了[您的其他 Claude Code 工作階段之一](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)。需要 Claude Code v2.1.232 或更新版本

1281* `success`:提及是否成功解析(`"true"` 或 `"false"`)1281* `success`:提及是否成功解析(`"true"` 或 `"false"`)

1282 1282 

1283#### API 重試用盡事件1283#### API 重試耗盡事件

1284 1284 

1285當 API 請求在多次嘗試後失敗時記錄一次。與最終的 `api_error` 事件一同發出。1285在 API 請求經過多次嘗試後仍失敗時記錄一次。與最終的 `api_error` 事件一起發出。

1286 1286 

1287**事件名稱**:`claude_code.api_retries_exhausted`1287**事件名稱**:`claude_code.api_retries_exhausted`

1288 1288 


1291* 所有[標準屬性](#standard-attributes)1291* 所有[標準屬性](#standard-attributes)

1292* `event.name`:`"api_retries_exhausted"`1292* `event.name`:`"api_retries_exhausted"`

1293* `event.timestamp`:ISO 8601 時間戳記1293* `event.timestamp`:ISO 8601 時間戳記

1294* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1294* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1295* `model`:使用的模型1295* `model`:使用的模型

1296* `error`:最終錯誤訊息1296* `error`:最終錯誤訊息

1297* `status_code`:以數字表示的 HTTP 狀態碼。對於非 HTTP 錯誤不存在。1297* `status_code`:HTTP 狀態碼(數字)。非 HTTP 錯誤時不存在。

1298* `total_attempts`:嘗試的總次數1298* `total_attempts`:總嘗試次數

1299* `total_retry_duration_ms`:所有嘗試的總實際經過時間1299* `total_retry_duration_ms`:所有嘗試的總實際經過時間

1300* `speed`:`"fast"` 或 `"normal"`1300* `speed`:`"fast"` 或 `"normal"`

1301 1301 

1302#### Hook 註冊事件1302#### Hook 已註冊事件

1303 1303 

1304在工作階段開始時,針對每個已設定的 hook 記錄一次。可使用此事件盤點整個裝置群中作用中的 hook,作為每次執行之 `hook_execution_start` 與 `hook_execution_complete` 事件的補充。1304在工作階段開始時,針對每個已設定的 hook 記錄一次。使用此事件盤點整個機群中有哪些 hook 處於啟用狀態,作為每次執行的 `hook_execution_start` 與 `hook_execution_complete` 事件的補充。

1305 1305 

1306**事件名稱**:`claude_code.hook_registered`1306**事件名稱**:`claude_code.hook_registered`

1307 1307 


1310* 所有[標準屬性](#standard-attributes)1310* 所有[標準屬性](#standard-attributes)

1311* `event.name`:`"hook_registered"`1311* `event.name`:`"hook_registered"`

1312* `event.timestamp`:ISO 8601 時間戳記1312* `event.timestamp`:ISO 8601 時間戳記

1313* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1313* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1314* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`1314* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`

1315* `hook_type`:hook 實作類型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`1315* `hook_type`:hook 實作類型:`"command"`、`"prompt"`、`"mcp_tool"`、`"http"` 或 `"agent"`

1316* `hook_source`:hook 的定義位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`1316* `hook_source`:hook 的定義位置:`"userSettings"`、`"projectSettings"`、`"localSettings"`、`"flagSettings"`、`"policySettings"` 或 `"pluginHook"`

1317* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1317* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本

1318* `hook_matcher`(當 `OTEL_LOG_TOOL_DETAILS=1` 時):hook 設定中的 matcher 字串(有設定時)1318* `hook_matcher`(當設定 `OTEL_LOG_TOOL_DETAILS=1` 時):hook 設定中的 matcher 字串(若有設定)

1319* `plugin.name`(當 `hook_source` 為 `"pluginHook"` 時):提供該 hook 之外掛的名稱。對於官方市集與內建套件以外的外掛,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則此值為 `"third-party"`1319* `plugin.name`(當 `hook_source` 為 `"pluginHook"` 時):提供該 hook 的外掛名稱。對於官方市集與內建套件以外的外掛,除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則值為 `"third-party"`

1320* `plugin_id_hash`(當 `hook_source` 為 `"pluginHook"` 時):外掛名稱與市集的確定性雜湊值,僅傳送給您設定的匯出器。可讓您在不記錄名稱的情況下計算提供 hook 的不同外掛數量。Claude Code 的計算方式如[外掛載入事件](#plugin-loaded-event)中所述1320* `plugin_id_hash`(當 `hook_source` 為 `"pluginHook"` 時):外掛名稱與市集的確定性雜湊值,僅傳送至您設定的匯出器。讓您可以計算提供 hook 的不同外掛數量,而無需記錄其名稱。Claude Code 的計算方式如[外掛已載入事件](#plugin-loaded-event)中所述

1321 1321 

1322#### Hook 執行開始事件1322#### Hook 執行開始事件

1323 1323 

1324當一個或多個 hook 開始針對某個 hook 事件執行時記錄。1324在某個 hook 事件的一或多個 hook 開始執行時記錄。

1325 1325 

1326**事件名稱**:`claude_code.hook_execution_start`1326**事件名稱**:`claude_code.hook_execution_start`

1327 1327 


1330* 所有[標準屬性](#standard-attributes)1330* 所有[標準屬性](#standard-attributes)

1331* `event.name`:`"hook_execution_start"`1331* `event.name`:`"hook_execution_start"`

1332* `event.timestamp`:ISO 8601 時間戳記1332* `event.timestamp`:ISO 8601 時間戳記

1333* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1333* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1334* `hook_event`:Hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`1334* `hook_event`:hook 事件類型,例如 `"PreToolUse"` 或 `"PostToolUse"`

1335* `hook_name`:包含 matcher 的完整 hook 名稱,例如 `"PreToolUse:Write"`1335* `hook_name`:包含 matcher 的完整 hook 名稱,例如 `"PreToolUse:Write"`

1336* `num_hooks`:相符的 hook 命令數量1336* `num_hooks`:符合的 hook 命令數量

1337* `managed_only`:當僅允許受管政策 hook 時為 `"true"`1337* `managed_only`:當僅允許受管政策 hook 時為 `"true"`

1338* `hook_source`:`"policySettings"` 或 `"merged"`1338* `hook_source`:`"policySettings"` 或 `"merged"`

1339* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1339* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本

1340* `hook_definitions`:JSON 序列化後的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時包含1340* `hook_definitions`:JSON 序列化的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含

1341 1341 

1342#### Hook 執行完成事件1342#### Hook 執行完成事件

1343 1343 

1344當某個 hook 事件的所有 hook 都已完成時記錄。1344在某個 hook 事件的所有 hook 都執行完畢時記錄。

1345 1345 

1346**事件名稱**:`claude_code.hook_execution_complete`1346**事件名稱**:`claude_code.hook_execution_complete`

1347 1347 


1350* 所有[標準屬性](#standard-attributes)1350* 所有[標準屬性](#standard-attributes)

1351* `event.name`:`"hook_execution_complete"`1351* `event.name`:`"hook_execution_complete"`

1352* `event.timestamp`:ISO 8601 時間戳記1352* `event.timestamp`:ISO 8601 時間戳記

1353* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1353* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1354* `hook_event`:Hook 事件類型1354* `hook_event`:hook 事件類型

1355* `hook_name`:包含 matcher 的完整 hook 名稱1355* `hook_name`:包含 matcher 的完整 hook 名稱

1356* `num_hooks`:相符的 hook 命令數量1356* `num_hooks`:符合的 hook 命令數量

1357* `num_success`:成功完成的數量1357* `num_success`:成功完成的數量

1358* `num_blocking`:傳回阻擋決定的數量1358* `num_blocking`:回傳阻擋決定的數量

1359* `num_non_blocking_error`:失敗但未阻擋的數量1359* `num_non_blocking_error`:失敗但未阻擋的數量

1360* `num_cancelled`:完成前被取消的數量1360* `num_cancelled`:在完成前被取消的數量

1361* `total_duration_ms`:所有相符 hook 的實際經過時間1361* `total_duration_ms`:所有符合 hook 的實際經過時間

1362* `stdout_chars`:成功之相符 hook 的 stdout 總字元數。需要 Claude Code v2.1.280 或更新版本1362* `stdout_chars`:成功執行的符合 hook 的 stdout 總字元數。需要 Claude Code v2.1.280 或更新版本

1363* `additional_context_chars`:相符 hook 傳回之 `additionalContext` 的總字元數。需要 Claude Code v2.1.280 或更新版本1363* `additional_context_chars`:符合 hook 所回傳的 `additionalContext` 總字元數。需要 Claude Code v2.1.280 或更新版本

1364* `system_message_chars`:相符 hook 傳回之 `systemMessage` 的總字元數。需要 Claude Code v2.1.280 或更新版本1364* `system_message_chars`:符合 hook 所回傳的 `systemMessage` 總字元數。需要 Claude Code v2.1.280 或更新版本

1365* `initial_user_message_chars`:相符 hook 傳回之 `initialUserMessage` 的總字元數。需要 Claude Code v2.1.280 或更新版本1365* `initial_user_message_chars`:符合 hook 所回傳的 `initialUserMessage` 總字元數。需要 Claude Code v2.1.280 或更新版本

1366* `num_outputs_persisted`:超過 [10,000 字元上限](https://code.claude.com/docs/zh-TW/hooks.md#json-output)而由 Claude Code 儲存至檔案的 hook 輸出數量。需要 Claude Code v2.1.280 或更新版本1366* `num_outputs_persisted`:超過 [10,000 字元上限](https://code.claude.com/docs/zh-TW/hooks.md#json-output)而被 Claude Code 儲存至檔案的 hook 輸出數量。需要 Claude Code v2.1.280 或更新版本

1367* `managed_only`:當僅允許受管政策 hook 時為 `"true"`1367* `managed_only`:當僅允許受管政策 hook 時為 `"true"`

1368* `hook_source`:`"policySettings"` 或 `"merged"`1368* `hook_source`:`"policySettings"` 或 `"merged"`

1369* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本1369* `safe_mode`:當工作階段以 [`--safe-mode`](https://code.claude.com/docs/zh-TW/cli-reference) 啟動時為 `"true"`,否則為 `"false"`。需要 Claude Code v2.1.169 或更新版本

1370* `hook_definitions`:JSON 序列化後的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時包含1370* `hook_definitions`:JSON 序列化的 hook 設定。僅在同時啟用詳細 beta 追蹤與 `OTEL_LOG_TOOL_DETAILS=1` 時才會包含

1371 1371 

1372#### Hook 外掛指標事件1372#### Hook 外掛指標事件

1373 1373 

1374當官方市集外掛的 hook 發出每次呼叫的指標時記錄。只有從 Anthropic 官方市集安裝的外掛才能發出這些指標。第三方市集外掛與使用者設定的 hook 不會發出此事件。可使用此事件從您自己的可觀測性堆疊監控外掛行為,例如發現率、成本與持續時間。1374在官方市集外掛的 hook 發出每次叫用的指標時記錄。只有從官方 Anthropic 市集安裝的外掛才能發出這些指標。第三方市集外掛與使用者設定的 hook 不會發出此事件。使用此事件可從您自己的可觀測性堆疊監控外掛行為,例如發現率、成本與持續時間。

1375 1375 

1376**事件名稱**:`claude_code.hook_plugin_metrics`1376**事件名稱**:`claude_code.hook_plugin_metrics`

1377 1377 


1380* 所有[標準屬性](#standard-attributes)1380* 所有[標準屬性](#standard-attributes)

1381* `event.name`:`"hook_plugin_metrics"`1381* `event.name`:`"hook_plugin_metrics"`

1382* `event.timestamp`:ISO 8601 時間戳記1382* `event.timestamp`:ISO 8601 時間戳記

1383* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1383* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1384* `plugin_id`:`<name>@<marketplace>` 形式的外掛識別碼1384* `plugin_id`:`<name>@<marketplace>` 格式的外掛識別碼

1385* `hook_event`:發出指標的 hook 事件類型1385* `hook_event`:發出指標的 hook 事件類型

1386* 最多 20 個外掛發出的指標鍵。名稱需符合 `^[a-z][a-z0-9_]{0,39}$`。值為布林值或數字。1386* 最多 20 個由外掛發出的指標鍵。名稱須符合 `^[a-z][a-z0-9_]{0,39}$`。值為布林值或數字。

1387 1387 

1388#### 壓縮事件1388#### 壓縮事件

1389 1389 


1396* 所有[標準屬性](#standard-attributes)1396* 所有[標準屬性](#standard-attributes)

1397* `event.name`:`"compaction"`1397* `event.name`:`"compaction"`

1398* `event.timestamp`:ISO 8601 時間戳記1398* `event.timestamp`:ISO 8601 時間戳記

1399* `event.sequence`:用於排序事件的每程序計數器,說明請參閱[事件關聯屬性](#event-correlation-attributes)1399* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1400* `trigger`:`"auto"` 或 `"manual"`1400* `trigger`:`"auto"` 或 `"manual"`

1401* `success`:`"true"` 或 `"false"`1401* `success`:`"true"` 或 `"false"`

1402* `duration_ms`:壓縮持續時間1402* `duration_ms`:壓縮持續時間

1403* `pre_tokens`:壓縮前的約略 token 數量1403* `pre_tokens`:壓縮前的約略 token 數

1404* `post_tokens`:壓縮後的約略 token 數量1404* `post_tokens`:壓縮後的約略 token 數

1405* `error`:壓縮失敗時的錯誤訊息1405* `error`:壓縮失敗時的錯誤訊息

1406* `precompute_reuse`:僅在 `trigger` 為 `"manual"`,或在互動式終端機工作階段中針對[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction)且 `trigger` 為 `"auto"` 時設定。自動壓縮可以在上下文視窗填滿之前於背景準備摘要,此屬性記錄壓縮是否重複使用了該預先準備的摘要。`"hit"` 表示已重複使用;`"miss_custom_instructions"`、`"miss_hook"` 與 `"miss_not_ready"` 則說明改為計算新摘要的原因1406* `precompute_reuse`:僅在 `trigger` 為 `"manual"` 時設定,或在互動式終端機工作階段中針對[閒置壓縮](https://code.claude.com/docs/zh-TW/settings-reference.md#idlecompaction)而 `trigger` 為 `"auto"` 時設定。自動壓縮可在上下文視窗填滿之前於背景準備摘要,此屬性記錄壓縮是否重複使用了該預先準備的摘要。`"hit"` 表示已重複使用;`"miss_custom_instructions"`、`"miss_hook"` 與 `"miss_not_ready"` 則說明改為重新計算摘要的原因

1407 1407 

1408#### Subagent 完成事件1408#### Subagent 已完成事件

1409 1409 

1410在 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 完成並將結果傳回啟動它的對話時記錄。可用於依 subagent 類型彙總工具使用情況與執行時間;若要彙總 token 或成本,請使用以 `query_source` `"subagent"` 篩選的 [token 計數器](#token-counter)與[成本計數器](#cost-counter),因為此事件的 `total_tokens` 僅涵蓋最後一個請求。`"subagent"` 類別也會計入來自以 agent 為基礎之 hook 的請求,而這些 hook 不會發出 subagent 事件。1410在 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 完成並將結果回傳給啟動它的對話時記錄。可用它依 subagent 類型彙總工具使用與執行時間;若要彙總 token 或成本,請使用篩選 `query_source` 為 `"subagent"` 的 [token 計數器](#token-counter)與[成本計數器](#cost-counter),因為此事件的 `total_tokens` 僅涵蓋最後一次請求。`"subagent"` 類別也會計入來自以 agent 為基礎的 hook 的請求,而這些 hook 不會發出 subagent 事件。

1411 1411 

1412**事件名稱**:`claude_code.subagent_completed`1412**事件名稱**:`claude_code.subagent_completed`

1413 1413 


1416* 所有[標準屬性](#standard-attributes)1416* 所有[標準屬性](#standard-attributes)

1417* `event.name`:`"subagent_completed"`1417* `event.name`:`"subagent_completed"`

1418* `event.timestamp`:ISO 8601 時間戳記1418* `event.timestamp`:ISO 8601 時間戳記

1419* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1419* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1420* `agent_type`:subagent 類型。內建 agent 名稱及來自官方市集外掛的 agent 會原樣顯示;除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則其他 agent 名稱會以 `"custom"` 取代1420* `agent_type`:subagent 類型。內建 agent 名稱及來自官方市集外掛的 agent 會原樣顯示;除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則其他 agent 名稱會被替換為 `"custom"`

1421* `agent.source`:agent 定義的來源:`built-in`、`plugin`,或定義自訂 agent 的設定來源,例如 `userSettings` 或 `projectSettings`1421* `agent.source`:agent 定義的來源:`built-in`、`plugin`,或定義自訂 agent 的設定來源,例如 `userSettings` 或 `projectSettings`

1422* `is_built_in`:subagent 是否為內建 agent 類型1422* `is_built_in`:subagent 是否為內建 agent 類型

1423* `is_async`:subagent 是否在[背景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)執行1423* `is_async`:subagent 是否在[背景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)執行

1424* `total_tokens`:subagent 最後一個 API 請求的 token 用量:該請求的輸入、快取建立、快取讀取與輸出 token,大致等於 subagent 完成時的上下文大小。並非整個執行過程的總和1424* `total_tokens`:subagent 最後一次 API 請求的 token 用量:該次請求的輸入、快取建立、快取讀取與輸出 token,大致相當於 subagent 完成時的上下文大小。並非整個執行過程的總和

1425* `total_tool_uses`:subagent 在整個執行過程中進行的工具呼叫次數1425* `total_tool_uses`:subagent 在整個執行過程中進行的工具呼叫次數

1426* `duration_ms`:執行時間(毫秒)1426* `duration_ms`:執行時間(毫秒)

1427* `model`:subagent 被解析為使用的模型1427* `model`:subagent 被解析要執行的模型

1428* `final_model`:產生 subagent 最終回應的模型;在執行中途切換(例如改用備援模型)後,會與 `model` 不同1428* `final_model`:產生 subagent 最終回應的模型,在執行途中切換(例如改用備援模型)後會與 `model` 不同

1429* `model_swapped`:是否有多個模型處理了 subagent 的請求1429* `model_swapped`:是否有多個模型處理了 subagent 的請求

1430* `plugin_id_hash`、`plugin.name`:由外掛提供的 agent 才會出現。官方市集外掛名稱會原樣顯示;除非設定了 `OTEL_LOG_TOOL_DETAILS=1`,否則其他外掛名稱會以 `"third-party"` 取代1430* `plugin_id_hash`、`plugin.name`:外掛提供的 agent 才會存在。官方市集外掛名稱會原樣顯示;除非設定 `OTEL_LOG_TOOL_DETAILS=1`,否則其他外掛名稱會被替換為 `"third-party"`

1431 1431 

1432#### 意見調查事件1432#### 意見回饋調查事件

1433 1433 

1434在顯示或回答工作階段品質調查時記錄。關於調查收集的內容及如何控制,請參閱[工作階段品質調查](https://code.claude.com/docs/zh-TW/data-usage.md#session-quality-surveys)。1434在顯示或回答工作階段品質調查時記錄。關於調查收集的內容及控制方式,請參閱[工作階段品質調查](https://code.claude.com/docs/zh-TW/data-usage.md#session-quality-surveys)。

1435 1435 

1436**事件名稱**:`claude_code.feedback_survey`1436**事件名稱**:`claude_code.feedback_survey`

1437 1437 


1440* 所有[標準屬性](#standard-attributes)1440* 所有[標準屬性](#standard-attributes)

1441* `event.name`:`"feedback_survey"`1441* `event.name`:`"feedback_survey"`

1442* `event.timestamp`:ISO 8601 時間戳記1442* `event.timestamp`:ISO 8601 時間戳記

1443* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1443* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1444* `event_type`:調查生命週期事件,例如 `"appeared"`、`"responded"` 或 `"transcript_prompt_appeared"`1444* `event_type`:調查生命週期事件,例如 `"appeared"`、`"responded"` 或 `"transcript_prompt_appeared"`

1445* `appearance_id`:用於連結同一調查實例所發出之事件的唯一 ID1445* `appearance_id`:連結同一調查實例所發出事件的唯一 ID

1446* `survey_type`:產生此事件的調查。`"session"` 為「How is Claude doing?」評分提示1446* `survey_type`:產生事件的調查。`"session"` 為「How is Claude doing?」評分提示

1447* `response`:使用者在 `responded` 事件中的選擇1447* `response`:`responded` 事件中使用者的選擇

1448* `enabled_via_override`:設定了 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](https://code.claude.com/docs/zh-TW/env-vars) 時為 `true`。以 Boolean 而非字串發出。出現在 `session` 調查事件上。可依此屬性篩選,以確認覆寫已套用至整個裝置群1448* `enabled_via_override`:當設定 [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](https://code.claude.com/docs/zh-TW/env-vars) 時為 `true`。以布林值而非字串發出。存在於 `session` 調查事件中。可篩選此屬性以確認覆寫已套用至整個機群

1449 1449 

1450#### 保留清理事件1450#### 保留清理事件

1451 1451 

1452保留清理作業每執行一次記錄一次,此作業會刪除早於 [`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 在每個工作階段中最多於背景執行一次清理作業,即使某次執行未刪除任何內容也會發出此事件。若 Claude Code 在過去 24 小時內已於同一台電腦上的任何工作階段執行過清理作業,則會將此工作階段的清理作業延後至少 10 分鐘,因此較早結束的工作階段不會發出任何內容。使用 `--bare` 執行 `claude -p` 時,Claude Code 不會執行清理作業,也不會發出任何內容。1452在每次執行保留清理時記錄一次,該清理會刪除早於 [`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 每個工作階段最多在背景執行一次清理,即使沒有刪除任何項目也仍會發出事件。若 Claude Code 在過去 24 小時內已在同一台機器上的任何工作階段中執行過清理,則會將此工作階段的清理延遲至少 10 分鐘,因此較早結束的工作階段不會發出任何事件。當您以 `--bare` 執行 `claude -p` 時,Claude Code 不會執行清理,也不會發出任何事件。

1453 1453 

1454如同本頁上的所有 OTel 事件,此事件只會傳送至您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。1454如同本頁上的所有 OTel 事件,此事件僅傳送至您設定的遙測後端。需要 Claude Code v2.1.227 或更新版本。

1455 1455 

1456當 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/` 附加檔案)提供 `cleanupPeriodDays`,否則 Claude Code 仍會暫停清理作業。刪除計數器屬性只有在 `result` 為 `"complete"` 時才會出現。1456當 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"` 時存在。

1457 1457 

1458**事件名稱**:`claude_code.retention_sweep`1458**事件名稱**:`claude_code.retention_sweep`

1459 1459 


1462* 所有[標準屬性](#standard-attributes)1462* 所有[標準屬性](#standard-attributes)

1463* `event.name`:`"retention_sweep"`1463* `event.name`:`"retention_sweep"`

1464* `event.timestamp`:ISO 8601 時間戳記1464* `event.timestamp`:ISO 8601 時間戳記

1465* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1465* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1466* `result`:清理作業已執行時為 `"complete"`,Claude Code 暫停時為 `"skipped"`1466* `result`:清理已執行時為 `"complete"`,Claude Code 暫停清理時為 `"skipped"`

1467* `period_days`:合併設定中的 `cleanupPeriodDays` 值(以天為單位),若沒有任何來源設定則為 `30`。在略過的事件中,此值為清理作業原本會使用的值,根據 Claude Code 能夠讀取的設定來源計算而得1467* `period_days`:合併後設定中的 `cleanupPeriodDays` 值(以天為單位),若無任何來源設定則為 `30`。在 skipped 事件中,為清理原本會使用的值,依 Claude Code 可讀取的設定來源計算

1468* `used_default`:沒有任何可讀取的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在完成的事件中,`"true"` 表示套用了 30 天的預設值1468* `used_default`:當沒有任何可讀取的設定來源設定 `cleanupPeriodDays` 時為 `"true"`,否則為 `"false"`。在 complete 事件中,`"true"` 表示套用了 30 天的預設值

1469* `skip_reason`:Claude Code 暫停清理作業的原因。僅在 `result` 為 `"skipped"` 時出現:1469* `skip_reason`:Claude Code 暫停清理的原因。僅在 `result` 為 `"skipped"` 時存在:

1470 * `"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`1470 * `"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`

1471 * `"settings_unknowable"`:某個設定檔無法讀取或剖析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能被設為 Claude Code 看不到的值1471 * `"settings_unknowable"`:某個設定檔無法讀取或剖析,因此 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 可能被設為 Claude Code 看不到的值

1472 * `"settings_invalid_key_set"`:設定有驗證錯誤,且明確設定了 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays`,因此改用預設值可能會違反該設定而刪除或保留檔案1472 * `"settings_invalid_key_set"`:設定有驗證錯誤,且明確設定了 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays`,因此改用預設值可能會違背該設定而刪除或保留檔案

1473* `transcripts_deleted`:清理作業刪除的工作階段逐字稿(即頂層的 `~/.claude/projects/*/*.jsonl` 檔案)數量1473* `transcripts_deleted`:清理所刪除的工作階段逐字稿(即最上層的 `~/.claude/projects/*/*.jsonl` 檔案)數量

1474* `transcripts_exempted_desktop`:已超過保留期間、但清理作業依 [Claude Desktop 與 Cowork 規則](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)保留的逐字稿數量。這些不計入 `files_past_cutoff`。需要 Claude Code v2.1.248 或更新版本1474* `transcripts_exempted_desktop`:超過保留期間但依 [Claude Desktop 與 Cowork 規則](https://code.claude.com/docs/zh-TW/claude-directory.md#cleaned-up-automatically)被清理保留的逐字稿數量。這些不會計入 `files_past_cutoff`。需要 Claude Code v2.1.248 或更新版本

1475* `session_files_deleted`:工作階段檔案清理作業刪除的 artifact 數量:逐字稿加上每個工作階段的附屬檔案,例如 sidecar、錄製內容與工具結果1475* `session_files_deleted`:工作階段檔案清理所刪除的項目數量:逐字稿加上每個工作階段的附屬檔案,例如 sidecar、錄製內容與工具結果

1476* `artifacts_deleted`:清理作業在其涵蓋的資料目錄中刪除的項目總數,包括工作階段檔案。部分清理作業會將整個移除的目錄樹計為一個項目,且少數清理流程不會計入此計數器,因此請將此值視為下限,而非精確的檔案數量1476* `artifacts_deleted`:清理在其涵蓋的資料目錄中刪除的項目總數,包括工作階段檔案。某些清理會將整個被移除的目錄樹計為一個項目,且少數清理流程不會計入此計數器,因此請將此值視為下限,而非精確的檔案數量

1477* `files_retained_fresh`:已檢查但因仍在保留期間內而保留的檔案。只有逐檔案的清理作業會計入這些檔案,因此此值為下限;非零值為正常的穩定狀態1477* `files_retained_fresh`:已檢查但因仍在保留期間內而保留的檔案。僅逐檔清理會計入這些檔案,因此此值為下限;非零值為正常的穩定狀態

1478* `files_past_cutoff`:早於保留期間但清理作業未能刪除的檔案,例如因權限錯誤或檔案被開啟佔用。此計數也包含清理作業在 `skills/synced/` 或 `plugins/synced/` 下找到的每個過時資料夾,無論是否將該資料夾移至垃圾桶。除了這些資料夾之外,大於零的值表示有檔案超過了所設定的保留期間;零並不能證明沒有檔案超過,因為移除整個目錄失敗時會改計入 `error_count`1478* `files_past_cutoff`:早於保留期間但清理未能刪除的檔案,例如因為權限錯誤或檔案仍被開啟。此計數也包括清理在 `skills/synced/` 或 `plugins/synced/` 下找到的每個過期資料夾,無論是否已將該資料夾移至垃圾桶。除了這些資料夾之外,大於零的值表示有檔案超過了設定的保留期間仍存在;零並不代表沒有這種情況,因為整個目錄移除失敗會改為計入 `error_count`

1479* `error_count`:清理作業在列出或刪除檔案時遇到的錯誤數量1479* `error_count`:清理在列出或刪除檔案時遇到的錯誤數量

1480 1480 

1481#### 受管設定解析事件1481#### 受管設定已解析事件

1482 1482 

1483隨工作階段所解析的[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)一併記錄:於工作階段開始時記錄一次,在工作階段期間受管設定或[政策輔助程式](https://code.claude.com/docs/zh-TW/managed-settings.md#compute-the-policy-with-a-helper-program)的狀態變更時再次記錄,以及當 Claude Code 因 `error.type` 屬性所列的原因之一而拒絕啟動或結束工作階段時記錄。1483記錄工作階段所解析的[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md):在工作階段開始時記錄一次,在工作階段期間受管設定或[政策輔助程式](https://code.claude.com/docs/zh-TW/managed-settings.md#compute-the-policy-with-a-helper-program)的狀態變更時再次記錄,以及在 Claude Code 因 `error.type` 屬性所列的原因之一而拒絕啟動或結束工作階段時記錄。

1484可使用此事件找出在非預期受管來源上執行的電腦、政策輔助程式失敗的電腦,以及電腦拒絕啟動的原因。1484使用此事件可找出在非預期受管來源上執行的機器、政策輔助程式失敗的機器,以及機器拒絕啟動的原因。

1485需要 Claude Code v2.1.274 或更新版本。1485需要 Claude Code v2.1.274 或更新版本。

1486 1486 

1487根據預設,此事件會包含受管來源與政策輔助程式的狀態,但不包含設定本身。若要加入經過遮蔽的 `managed_settings.settings` 屬性與 `managed_settings.resolved_sha256` 摘要,請設定 `OTEL_LOG_MANAGED_SETTINGS=1`:1487預設情況下,此事件會攜帶受管來源與政策輔助程式的狀態,但不包含設定本身。若要加入經遮蔽的 `managed_settings.settings` 屬性及 `managed_settings.resolved_sha256` 摘要,請設定 `OTEL_LOG_MANAGED_SETTINGS=1`:

1488 1488 

1489* 在受管設定、使用者設定或 `--settings` 的 `env` 區塊中設定,或在啟動 Claude Code 的環境中設定。在專案或本機設定中設定此值不會啟用它,因為複製的儲存庫可以寫入這些設定。1489* 在受管設定、使用者設定或 `--settings` 的 `env` 區塊中設定,或在您啟動 Claude Code 的環境中設定。專案或本機設定中的值不會啟用它,因為複製的儲存庫可以寫入這些設定。

1490* 伺服器受管設定可以設定此值而不顯示[安全性核准對話方塊](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs),因為此變數只會將您組織自己經過遮蔽的政策加入您組織已經會收到的事件中。1490* 伺服器受管設定可以設定它而不會顯示[安全核准對話框](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs),因為此變數只會將您組織自己經遮蔽的政策加入您組織已經收到的事件中。

1491 1491 

1492在您尚未[信任](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)的資料夾中的互動式工作階段,Claude Code 不會匯出拒絕事件。1492在您尚未[信任](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)的資料夾中的互動式工作階段裡,Claude Code 不會匯出拒絕事件。

1493 1493 

1494**事件名稱**:`claude_code.managed_settings_resolved`1494**事件名稱**:`claude_code.managed_settings_resolved`

1495 1495 


1498* 所有[標準屬性](#standard-attributes)1498* 所有[標準屬性](#standard-attributes)

1499* `event.name`:`"managed_settings_resolved"`1499* `event.name`:`"managed_settings_resolved"`

1500* `event.timestamp`:ISO 8601 時間戳記1500* `event.timestamp`:ISO 8601 時間戳記

1501* `event.sequence`:用於排序事件的每程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)1501* `event.sequence`:用於排序事件的每個程序計數器,說明請見[事件關聯屬性](#event-correlation-attributes)

1502* `managed_settings.trigger`:工作階段開始事件為 `"startup"`,在工作階段後續受管設定或政策輔助程式狀態變更時為 `"change"`,受管設定政策停止工作階段時為 `"refused"`。只有當某個屬性與上次傳送的事件不同時,Claude Code 才會傳送 `change` 事件;即使 `OTEL_LOG_MANAGED_SETTINGS` 未開啟,設定值的變更也會計入1502* `managed_settings.trigger`:工作階段開始事件為 `"startup"`,在工作階段稍後受管設定或政策輔助程式狀態變更時為 `"change"`,受管設定政策停止工作階段時為 `"refused"`。Claude Code 僅在某個屬性與上次傳送的事件不同時才傳送 `change` 事件,且即使 `OTEL_LOG_MANAGED_SETTINGS` 關閉,設定值的變更仍會計入

1503* `error.type`:Claude Code 停止工作階段的原因。僅出現在 `refused` 事件上:1503* `error.type`:Claude Code 停止工作階段的原因。僅存在於 `refused` 事件中:

1504 * `"helper_failed"`:[政策輔助程式執行失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)1504 * `"helper_failed"`:[政策輔助程式執行失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)

1505 * `"policy_invalid"`:受管設定包含會阻止 Claude Code 啟動的錯誤,或某個管理來源因讀取被拒以外的原因而載入失敗,導致 Claude Code 無法檢查組織登入或提供者強制規定1505 * `"policy_invalid"`:受管設定包含使 Claude Code 無法啟動的錯誤,或某個管理來源因讀取被拒以外的原因載入失敗,導致 Claude Code 無法檢查組織登入或提供者強制執行

1506 * `"provider_not_allowed"`:工作階段會使用受管 [`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 清單不允許的 API 提供者,或將某個提供者的流量傳送至不允許的主機。需要 Claude Code v2.1.285 或更新版本1506 * `"provider_not_allowed"`:工作階段將使用受管 [`allowedProviders`](https://code.claude.com/docs/zh-TW/settings-reference#allowedproviders) 清單不允許的 API 提供者,或將提供者的流量傳送至不允許的主機。需要 Claude Code v2.1.285 或更新版本

1507 * `"consent_rejected"`:使用者拒絕了伺服器受管設定的[安全性核准對話方塊](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs)1507 * `"consent_rejected"`:使用者拒絕了伺服器受管設定的[安全核准對話框](https://code.claude.com/docs/zh-TW/server-managed-settings.md#security-approval-dialogs)

1508 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#forceremotesettingsrefresh) 所要求的設定擷取失敗1508 * `"force_refresh_failed"`:[`forceRemoteSettingsRefresh`](https://code.claude.com/docs/zh-TW/settings-reference#forceremotesettingsrefresh) 所要求的設定擷取失敗

1509 * `"gateway_rejected"`:[Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)以 HTTP 403 回應受管設定載入1509 * `"gateway_rejected"`:[Claude apps 閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)以 HTTP 403 回應受管設定載入

1510 * `"version_below_minimum"`:此版本的 Claude Code 低於 [`requiredMinimumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredminimumversion) 或高於 [`requiredMaximumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredmaximumversion)1510 * `"version_below_minimum"`:此版本的 Claude Code 低於 [`requiredMinimumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredminimumversion) 或高於 [`requiredMaximumVersion`](https://code.claude.com/docs/zh-TW/settings-reference#requiredmaximumversion)

1511 * `"_OTHER"`:Claude apps 閘道的受管設定載入因其他原因失敗1511 * `"_OTHER"`:Claude apps 閘道受管設定因其他原因載入失敗

1512* `managed_settings.sources`:所有提供至少一個[政策鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)的受管來源,依優先順序由高至低排列,包括在 `first-wins` 下其鍵未生效的來源。值包括:MDM 或作業系統層級政策的 `"remote"`、`"plist"` 或 `"hklm"`,受管設定檔與附加檔案的 `"file"`,[嵌入主機](https://code.claude.com/docs/zh-TW/managed-settings.md#let-an-embedding-host-add-policy)提供設定時的 `"parent"`,以及 Claude Code [讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)[Windows HKCU 登錄值](https://code.claude.com/docs/zh-TW/managed-settings.md#where-each-mechanism-stores-the-policy)時的 `"hkcu"`。僅包含控制鍵的來源,或 Claude Code 無法讀取的來源,不會列出。以字串陣列發出,若沒有任何受管來源提供政策鍵則為空陣列1512* `managed_settings.sources`:每個提供至少一個[政策鍵](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources)的受管來源,依優先順序由高至低排列,包括其鍵在 `first-wins` 下未生效的來源。值為 `"remote"`;MDM 或作業系統層級政策為 `"plist"` 或 `"hklm"`;受管設定檔與 drop-in 為 `"file"`;[嵌入主機](https://code.claude.com/docs/zh-TW/managed-settings.md#let-an-embedding-host-add-policy)提供設定時為 `"parent"`;當 Claude Code [讀取](https://code.claude.com/docs/zh-TW/managed-settings.md#how-claude-code-combines-managed-sources) [Windows HKCU 登錄值](https://code.claude.com/docs/zh-TW/managed-settings.md#where-each-mechanism-stores-the-policy)時為 `"hkcu"`。僅攜帶控制鍵或 Claude Code 無法讀取的來源不會列出。以字串陣列發出,若沒有任何受管來源提供政策鍵則為空陣列

1513* `managed_settings.source_behavior`:Claude Code 讀取到的 [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 值,為 `"first-wins"` 或 `"merge"`。沒有任何來源設定此鍵時為 `"first-wins"`1513* `managed_settings.source_behavior`:Claude Code 讀取到的 [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) 值,`"first-wins"` 或 `"merge"`。若無任何來源設定此鍵則為 `"first-wins"`

1514* `managed_settings.helper.state`:所選 MDM 或檔案來源所設定之政策輔助程式的狀態:1514* `managed_settings.helper.state`:所選 MDM 或檔案來源所設定的政策輔助程式狀態:

1515 * `"ok"`:輔助程式的輸出作為受管設定使用1515 * `"ok"`:輔助程式的輸出作為受管設定

1516 * `"bad_path"`、`"not_a_file"`、`"exit_nonzero"`、`"timed_out"`、`"oversize"`、`"parse_failed"`、`"envelope_invalid"` 或 `"schema_rejected"`:輔助程式最近一次執行失敗。[輔助程式失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)說明了各種情況1516 * `"bad_path"`、`"not_a_file"`、`"exit_nonzero"`、`"timed_out"`、`"oversize"`、`"parse_failed"`、`"envelope_invalid"` 或 `"schema_rejected"`:輔助程式的上次執行失敗。[輔助程式失敗](https://code.claude.com/docs/zh-TW/settings-reference.md#helper-failures)說明了各種情況

1517 * `"none"`:未設定輔助程式,或設定它的來源不是 MDM 政策或受管設定檔1517 * `"none"`:未設定輔助程式,或設定它的來源不是 MDM 政策或受管設定檔

1518* `managed_settings.helper.applied`:當輔助程式本身的輸出作為受管設定使用時為 `"output"`,否則為 `"none"`1518* `managed_settings.helper.applied`:當輔助程式本身的輸出作為受管設定時為 `"output"`,否則為 `"none"`

1519* `managed_settings.helper.entry`:Claude Code 選取了 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 時為 `"policyHelper"`。未選取任何輔助程式時不會出現1519* `managed_settings.helper.entry`:當 Claude Code 選擇了 [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) 時為 `"policyHelper"`。未選擇輔助程式時不存在

1520* `managed_settings.helper.path`:輔助程式所設定的 [`path`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper-path)。只要 Claude Code 選取了輔助程式就會出現,無論是否設定 `OTEL_LOG_MANAGED_SETTINGS`1520* `managed_settings.helper.path`:輔助程式所設定的 [`path`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper-path)。只要 Claude Code 選擇了輔助程式就會存在,無論是否設定 `OTEL_LOG_MANAGED_SETTINGS`

1521* `managed_settings.resolved_sha256`(當 `OTEL_LOG_MANAGED_SETTINGS=1` 時):遮蔽前已解析受管設定的 SHA-256,以遞迴排序鍵且不含空白的 JSON 序列化後計算。摘要相同的電腦執行相同的政策。Claude Code 僅在選擇啟用時才傳送摘要,因為較短的政策可以透過雜湊猜測值而被還原。沒有解析任何受管設定時不會出現,在 `refused` 事件上也不會出現1521* `managed_settings.resolved_sha256`(當設定 `OTEL_LOG_MANAGED_SETTINGS=1` 時):遮蔽前已解析受管設定的 SHA-256,以 JSON 序列化,鍵遞迴排序且不含空白。摘要相同的機器執行相同的政策。Claude Code 僅在選擇加入時才傳送摘要,因為簡短的政策可透過雜湊猜測值而被還原。若沒有解析任何受管設定,以及在 `refused` 事件中,則不存在

1522* `managed_settings.settings`(當 `OTEL_LOG_MANAGED_SETTINGS=1` 時):已解析受管設定的名稱與結構,以 JSON 字串表示,值經過遮蔽。在 `refused` 事件上不會出現。Claude Code 依據其設定 schema 建置此值:1522* `managed_settings.settings`(當設定 `OTEL_LOG_MANAGED_SETTINGS=1` 時):已解析受管設定的名稱與結構,以 JSON 字串表示,值已遮蔽。在 `refused` 事件中不存在。Claude Code 依據其設定 schema 建立此值:

1523 1523 

1524 * schema 宣告的設定名稱會被匯出,schema 未宣告的鍵則會被省略1524 * schema 宣告的設定名稱會被匯出,未宣告的鍵則會被省略

1525 * Boolean、數字,以及 schema 限制為固定選項集合的字串值(例如 `permissions.defaultMode`)會原樣匯出。`sandbox.network.httpProxyPort` 與 `sandbox.network.socksProxyPort` 會匯出為 `"[REDACTED]"`1525 * 布林值、數字,以及 schema 限制為固定選項集合的字串值(例如 `permissions.defaultMode`)會原樣匯出。`sandbox.network.httpProxyPort` 與 `sandbox.network.socksProxyPort` 會匯出為 `"[REDACTED]"`

1526 * 其他所有字串,例如 `model`、`apiKeyHelper`、每個 `env` 值、每個 URL 與每個命令,都會匯出為 `"[REDACTED]"`1526 * 其他所有字串,例如 `model`、`apiKeyHelper`、每個 `env` 值、每個 URL 及每個命令,都會匯出為 `"[REDACTED]"`

1527 * 對應表的項目名稱,例如 `env` 變數名稱與外掛 ID,會原樣匯出。schema 未定義其項目類型的設定(例如 `vimInsertModeRemaps`)會匯出為單一的 `"[REDACTED]"`,而 `sandbox.ignoreViolations` 會匯出為其路徑清單的清單,不含命令模式1527 * 對應表的項目名稱,例如 `env` 變數名稱與外掛 ID,會原樣匯出。schema 未定義項目型別的設定(例如 `vimInsertModeRemaps`)會匯出為單一的 `"[REDACTED]"`,而 `sandbox.ignoreViolations` 會匯出為其路徑清單的清單,不含命令模式

1528 * 清單會保留其長度,每個項目依相同規則遮蔽1528 * 清單會保留其長度,每個項目依相同規則遮蔽

1529 * 當工具內建於此版本的 Claude Code,或為 `mcp__` 參照(例如 `mcp__jira__create_issue`)時,`permissions.allow`、`permissions.deny` 或 `permissions.ask` 規則會匯出為其工具名稱並遮蔽內容,例如 `Read([REDACTED])`。其他任何規則都會匯出為 `"[REDACTED]"`1529 * 當工具內建於此版本的 Claude Code,或為 `mcp__` 參照(例如 `mcp__jira__create_issue`)時,`permissions.allow`、`permissions.deny` 或 `permissions.ask` 規則會匯出為其工具名稱並遮蔽內容,例如 `Read([REDACTED])`。其他任何規則則匯出為 `"[REDACTED]"`

1530 * hook 遵循相同規則,因此固定選項與數值欄位(例如 `type` 與 `timeout`)會顯示,而每個命令、URL、`matcher` 與 `if` 條件都會匯出為 `"[REDACTED]"`1530 * Hook 遵循相同規則,因此固定選項與數值欄位(例如 `type` 與 `timeout`)會顯示,而每個命令、URL、`matcher` 及 `if` 條件都會匯出為 `"[REDACTED]"`

1531 1531 

1532 例如,包含 `apiKeyHelper`、兩個 `env` 變數與一條拒絕規則的受管設定會匯出為 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`。1532 例如,含有 `apiKeyHelper`、兩個 `env` 變數及一條拒絕規則的受管設定會匯出為 `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`。

1533 1533 

1534 Claude Code 會在 UTF-8 編碼 8 KB 處截斷此值,截斷後的值不是有效的 JSON1534 Claude Code 會在 UTF-8 的 8 KB 處截斷此值,截斷後的值不是有效的 JSON

1535* `managed_settings.settings_truncated`(當 `managed_settings.settings` 存在時):Claude Code 在 8 KB 處截斷 `managed_settings.settings` 時為 `true`,否則為 `false`。以 Boolean 而非字串發出1535* `managed_settings.settings_truncated`(當 `managed_settings.settings` 存在時):當 Claude Code 在 8 KB 處截斷 `managed_settings.settings` 時為 `true`,否則為 `false`。以布林值而非字串發出

1536 1536 

1537## 解釋指標和事件資料1537## 解釋指標和事件資料

1538 1538 

Details

97 該命令也適用於[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)和 Agent SDK 工作階段,以及來自行動應用程式或網頁的[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md#limitations),您只能列出和選擇[內建樣式](#built-in-output-styles)。需要 Claude Code v2.1.269 或更新版本。97 該命令也適用於[非互動模式](https://code.claude.com/docs/zh-TW/headless.md)和 Agent SDK 工作階段,以及來自行動應用程式或網頁的[遠端控制](https://code.claude.com/docs/zh-TW/remote-control.md#limitations),您只能列出和選擇[內建樣式](#built-in-output-styles)。需要 Claude Code v2.1.269 或更新版本。

98* **終端機選單**:執行 `/config` 並選擇**輸出樣式**以從選單中選擇樣式。98* **終端機選單**:執行 `/config` 並選擇**輸出樣式**以從選單中選擇樣式。

99* **VS Code 擴充功能**:使用 `/` 開啟[命令選單](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box)並選擇**輸出樣式**以選擇樣式,包括您的自訂樣式。需要 Claude Code v2.1.257 或更新版本。99* **VS Code 擴充功能**:使用 `/` 開啟[命令選單](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box)並選擇**輸出樣式**以選擇樣式,包括您的自訂樣式。需要 Claude Code v2.1.257 或更新版本。

100* **桌面應用程式**:在設定檔中設定 `outputStyle` 欄位,例如 `.claude/settings.local.json`,這是終端機選單寫入的檔案。當您在那裡執行 `/config` 時,Claude Code [開啟**設定 > Claude Code**](https://code.claude.com/docs/zh-TW/desktop.md#what%E2%80%99s-not-available-in-desktop)而不是選單。100* **桌面應用程式**:在設定檔中設定 `outputStyle` 欄位,例如 `.claude/settings.local.json`,這是終端機選單寫入的檔案。當您在那裡執行 `/config` 時,Claude Code 會[開啟**設定 > Code** 或**設定 > Claude Code**](https://code.claude.com/docs/zh-TW/desktop.md#what’s-not-available-in-desktop)而不是選單。

101 101 

102若要在不使用選單的情況下設定樣式,請直接編輯設定檔中的 `outputStyle` 欄位:102若要在不使用選單的情況下設定樣式,請直接編輯設定檔中的 `outputStyle` 欄位:

103 103 

Details

31 31 

32### 任何模式都不會自動核准的動作32### 任何模式都不會自動核准的動作

33 33 

34Claude Code 在任何模式中都不會自動批准以下操作,包括 `bypassPermissions`。每個項目都連結到說明在每種模式中會發生什麼的部分:34Claude Code 在任何模式中都不會自動核准以下操作,包括 `bypassPermissions`,不過您可以在 `bypassPermissions` 模式中[關閉危險 `rm` 命令的提示](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode)。每個項目都連結到說明在每種模式中會發生什麼的部分:

35 35 

36* 符合明確[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)的工具36* 符合明確[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)的工具

37* 您的組織[設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,在該設定到達 Claude Code 的工作階段中37* 您的組織[設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,在該設定到達 Claude Code 的工作階段中


504* 唯讀 HTTP 請求504* 唯讀 HTTP 請求

505* 推送到您正在處理的儲存庫的任何分支,包括預設分支。名稱將其標示為部署或發佈目標的非預設分支,例如 `production` 或 `gh-pages`,不在此列:分類器會依其本身的情況判斷推送到那裡的操作。505* 推送到您正在處理的儲存庫的任何分支,包括預設分支。名稱將其標示為部署或發佈目標的非預設分支,例如 `production` 或 `gh-pages`,不在此列:分類器會依其本身的情況判斷推送到那裡的操作。

506 506 

507 推送的內容仍會依據分類器的其他規則進行檢查,[`permissions.deny` 規則](https://code.claude.com/docs/zh-TW/permissions#manage-permissions)仍可在每個模式中[依撰寫方式](https://code.claude.com/docs/zh-TW/permissions.md#bash-rule-limits)阻止推送命令。遠端自身的分支保護也仍然適用。從 v2.1.203 到 v2.1.211 之前,預設僅允許對預設分支的例行推送,以及推送到您起始所在的分支或 Claude 建立的分支。507 推送的內容仍會依據分類器的其他規則進行檢查,[`permissions.deny` 規則](https://code.claude.com/docs/zh-TW/permissions#manage-permissions)仍可在每個模式中[依撰寫方式](https://code.claude.com/docs/zh-TW/permissions.md#bash-rule-limits)阻止推送命令。遠端自身的分支保護也仍然適用。

508* 刪除 Claude 在同一工作階段中稍早建立的特定工作508* 刪除 Claude 在同一工作階段中稍早建立的特定工作

509* 作為您任務的一部分讀取、審查或撰寫與安全相關的程式碼、設定和威脅模型509* 作為您任務的一部分讀取、審查或撰寫與安全相關的程式碼、設定和威脅模型

510* 在同一多 agent 工作階段中協同工作的 agent 之間的訊息510* 在同一多 agent 工作階段中協同工作的 agent 之間的訊息


649 649 

650`bypassPermissions` 模式會停用權限提示與安全檢查,讓工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。650`bypassPermissions` 模式會停用權限提示與安全檢查,讓工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。

651 651 

652即使在 `bypassPermissions` 模式下,每一項[任何模式都不會自動核准的動作](#actions-no-mode-auto-approves)都會出現提示或遭到拒絕,而不會自行執行。讀取[其他組織的公開 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#read-an-artifact-shared-with-you) 需要您的核准,而此模式不會請求核准,因此 Claude 無法讀取這類 artifact。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕規則在此模式下同樣適用。652即使在 `bypassPermissions` 模式下,每一項[任何模式都不會自動核准的動作](#actions-no-mode-auto-approves)都會出現提示或遭到拒絕,不過您可以[關閉危險 `rm` 命令的提示](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode)。讀取[其他組織的公開 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#read-an-artifact-shared-with-you) 需要您的核准,而此模式不會請求核准,因此 Claude 無法讀取這類 artifact。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕規則在此模式下同樣適用。

653 653 

654有兩項[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)保護措施在此模式下仍然適用,在可使用略過權限的互動式終端機 plan mode 工作階段中也同樣適用:654有兩項[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)保護措施在此模式下仍然適用,在可使用略過權限的互動式終端機 plan mode 工作階段中也同樣適用:

655 655 


861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.

862```862```

863 863 

864您會收到關鍵路徑移除[在您的權限模式中](#critical-path-removals-in-each-permission-mode)會收到的提示或拒絕,`bypassPermissions` 也不例外。您無法透過 `Bash` 或 `Bash(*)` 允許規則、沙箱[自動允許模式](https://code.claude.com/docs/zh-TW/sandboxing.md#auto-allow-mode)或返回 `"allow"` 的 `PreToolUse` hook 核准此命令。請閱讀命令,然後核准提示,或在遭拒絕後於您的 shell 中執行它。864您會收到關鍵路徑移除[在您的權限模式中](#critical-path-removals-in-each-permission-mode)會收到的提示或拒絕,`bypassPermissions` 也不例外,不過您可以在 `bypassPermissions` 模式中[關閉該提示](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode)。您無法透過 `Bash` 或 `Bash(*)` 允許規則、沙箱[自動允許模式](https://code.claude.com/docs/zh-TW/sandboxing.md#auto-allow-mode)或返回 `"allow"` 的 `PreToolUse` hook 核准此命令。請閱讀命令,然後核准提示,或在遭拒絕後於您的 shell 中執行它。

865 865 

866### 已掛載磁碟機提示866### 已掛載磁碟機提示

867 867 


923 923 

924如果明確的[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)與命令匹配,Claude Code 會改為詢問您,即使在 `auto` 模式中也沒有時間限制。在詢問的模式中,[`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 可以回答提示。924如果明確的[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)與命令匹配,Claude Code 會改為詢問您,即使在 `auto` 模式中也沒有時間限制。在詢問的模式中,[`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 可以回答提示。

925 925 

926若要在 `bypassPermissions` 模式中不經提示即執行這些移除,請參閱[關閉關鍵路徑移除提示](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode)。

927 

926### auto 和 bypassPermissions 模式中的時間限制和拒絕928### auto 和 bypassPermissions 模式中的時間限制和拒絕

927 929 

928在 `auto` 和 `bypassPermissions` 模式中,關鍵路徑移除的終端提示顯示兩分鐘倒計時:930在 `auto` 和 `bypassPermissions` 模式中,關鍵路徑移除的終端提示顯示兩分鐘倒計時:


939| :- | :- | :- |941| :- | :- | :- |

940| [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)的聊天面板 | 拒絕它 | 除非 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 允許,否則拒絕它 |942| [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)的聊天面板 | 拒絕它 | 除非 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 允許,否則拒絕它 |

941| [桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md) | 拒絕它 | 除非 `PermissionRequest` hook 允許,否則拒絕它 |943| [桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md) | 拒絕它 | 除非 `PermissionRequest` hook 允許,否則拒絕它 |

942| [`-p` 執行](https://code.claude.com/docs/zh-TW/headless)或 [Agent SDK 工作階段](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md) | 拒絕它 | 由您的 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 或 [`canUseTool` 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#handle-tool-approval-requests)決定。若兩者皆無,或在 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 下,除非 `PermissionRequest` hook 允許,否則拒絕它 |944| [`-p` 執行](https://code.claude.com/docs/zh-TW/headless)或 [Agent SDK 工作階段](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md) | 拒絕它 | 由您的 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 或 [`canUseTool` 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#handle-tool-approval-requests)決定。若兩者皆無,或在 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 下,除非 `PermissionRequest` hook 允許,否則拒絕它。若要改為不經提示即執行這些移除,請參閱[關閉關鍵路徑移除提示](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) |

943 945 

944無論移除在何處遭拒絕,您都可以閱讀完整命令並在您的 shell 中執行它。946無論移除在何處遭拒絕,您都可以閱讀完整命令並在您的 shell 中執行它。

945 947 


958}960}

959```961```

960 962 

963### 在 bypassPermissions 模式中關閉關鍵路徑移除提示

964 

965若要在 `bypassPermissions` 模式中不經提示即執行以[關鍵路徑](#critical-paths)為目標的 Bash `rm` 和 `rmdir` 命令,請在環境中設定 [`CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1`](https://code.claude.com/docs/zh-TW/env-vars#variables) 來啟動 Claude Code。這需要 Claude Code v2.1.311 或更新版本。Claude Code 僅從啟動環境讀取此變數,並會[忽略設定檔 `env` 區塊中的此變數](https://code.claude.com/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)。例如,在[您的 shell](https://code.claude.com/docs/zh-TW/env-vars.md#set-variables-in-your-shell) 中設定它,並從該處啟動 `claude`:

966 

967**macOS, Linux, WSL**

968 

969```bash theme={null}

970export CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1

971claude --permission-mode bypassPermissions

972```

973 

974**Windows PowerShell**

975 

976```powershell theme={null}

977$env:CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS = "1"

978claude --permission-mode bypassPermissions

979```

980 

981**Windows CMD**

982 

983```batch theme={null}

984set CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1

985claude --permission-mode bypassPermissions

986```

987 

988> [!WARNING]

989>

990> 設定此變數後,您會失去針對破壞性刪除的安全提示:`rm -rf ~` 之類的命令可能在不詢問您的情況下執行。請僅在內容遺失也無妨的[隔離環境](#skip-all-checks-with-bypasspermissions-mode)中設定它。

991 

992移除僅在 `bypassPermissions` 模式本身中不經提示執行,在 plan mode 中則不會,且僅限於 Bash 和 [Monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool) 工具中被關鍵路徑檢查標記的項目。這包括 Claude Code 無法完整解析的命令,這些命令同樣會不經提示執行。

993 

994#### 關於關鍵路徑移除提示的啟動通知

995 

996若要確認 `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` 是否生效,請閱讀 Claude Code 在啟動時印出的那一行。在 `-p` 執行中,它位於 stderr。在 Agent SDK 應用程式中,請傳入 [`stderr` 選項](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#options)以讀取它。該行會顯示以下其中一項:

997 

998* **`is set, so dangerous rm commands can run without a prompt`**:在受管設定和外掛 hook 載入後,移除即可不經提示執行。如果移除仍持續出現提示或遭拒絕,請參閱[為何關鍵路徑移除提示仍保持開啟](#why-the-critical-path-removal-prompt-stays-on)

999* **`has no effect in this session`**:移除在整個工作階段中維持其一般的提示或拒絕。若要變更此情況,請在[為何關鍵路徑移除提示仍保持開啟](#why-the-critical-path-removal-prompt-stays-on)中找出您的情況

1000* **`has no effect while the Windows registry cannot be read for managed settings`**:移除維持其一般的提示或拒絕,若之後讀取登錄檔成功,此變數會在不需重新啟動的情況下生效。如果移除仍持續出現提示或遭拒絕,請參閱[為何關鍵路徑移除提示仍保持開啟](#why-the-critical-path-removal-prompt-stays-on)

1001 

1002沒有該行並不代表提示已開啟:未設定 `stderr` 選項的 Agent SDK 應用程式看不到該行,而移除仍可不經提示執行。否則,請確認您已在啟動環境中設定該變數、工作階段[可以進入 `bypassPermissions` 模式](#skip-all-checks-with-bypasspermissions-mode),且 `claude` 並非在另一個工作階段內執行。某些工作階段[啟動時不帶有該變數](#why-the-critical-path-removal-prompt-stays-on)。

1003 

1004如果您看到其中一行但並未設定該變數,請找出設定它的位置(例如您的 shell 設定檔),並將其移除。

1005 

1006#### 為何關鍵路徑移除提示仍保持開啟

1007 

1008如果 `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` 沒有效果,且移除維持其[一般的提示或拒絕](#critical-path-removals-in-each-permission-mode),請檢查是否有以下原因:

1009 

1010* **其他機制處理權限提示**:未搭配 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 的 [`--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)、具有任何 matcher 的 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest),或處理該事件的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#hook-the-settings-hook-events)。移除該 hook、mod、工具或回呼,然後重新啟動 `claude`

1011* **由 [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)的聊天面板或[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md)執行工作階段**:請改在終端機中啟動 `claude`,例如 IDE 的整合式終端機

1012* **有規則涵蓋 Bash、Edit 或 Read**:以這些工具之一為目標的[拒絕或詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions),無論是在啟動時存在,或在工作階段期間被 Claude Code 讀取,即使您之後將其移除也一樣。移除該規則並重新啟動 `claude`。若要排除某個工具,請使用 [`--tools`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 而非拒絕規則

1013* **[`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 已開啟**:從每個將其設為 `true` 的設定檔中移除此設定,然後重新啟動 `claude`

1014* **`claude` 在另一個工作階段內執行**:從工作階段的 Bash 工具或 hook 啟動的 `claude`,即使其命令列上帶有該變數也一樣。請從您自己的 shell 啟動 `claude`。請勿將此巢狀工作階段限制視為安全邊界

1015* **`PreToolUse` hook 對移除回應 `ask`**:變更該 hook 的回傳值

1016* **由 Claude Code 為您啟動工作階段**:[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)、分割窗格中的 [agent team](https://code.claude.com/docs/zh-TW/agent-teams.md) 隊員,以及 [Remote Control](https://code.claude.com/docs/zh-TW/remote-control.md) 伺服器建立的工作階段,啟動時都不帶有該變數。請從您自己的 shell 啟動 `claude`

1017* **無法讀取受管設定**:Claude Code 尚未成功讀取您的[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)來源。如果伺服器受管設定持續無法載入,請參閱 [Remote managed settings failed to load](https://code.claude.com/docs/zh-TW/errors.md#remote-managed-settings-failed-to-load)。對於任何不是登錄檔查詢的其他失敗,請要求管理該來源的人員修正

1018* **無法查詢 Windows 登錄檔**:在 Windows 和 WSL 中,此變數需要登錄檔的回應,即使 [WSL 不將其用於設定](https://code.claude.com/docs/zh-TW/settings-reference.md#wslinheritswindowssettings)也是如此。在非英文版 Windows、關閉 interop 的 WSL,或 WSL2 核心上的容器中,查詢可能在整個工作階段中都失敗。如果 interop 已關閉,請將其開啟。否則,請自行執行這些移除

1019 

961### PowerShell 中的 Remove-Item1020### PowerShell 中的 Remove-Item

962 1021 

963當您啟用 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool)時,Claude Code 為 `Remove-Item` 和 `cmd` 內建命令 `rd`、`rmdir`、`del` 和 `erase` 提供自己的檢查,與 `rm` 關鍵路徑清單分開。對於 `Remove-Item`,結果取決於目標,第一個匹配的情況適用:1022當您啟用 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool)時,Claude Code 為 `Remove-Item` 和 `cmd` 內建命令 `rd`、`rmdir`、`del` 和 `erase` 提供自己的檢查,與 `rm` 關鍵路徑清單分開。對於 `Remove-Item`,結果取決於目標,第一個匹配的情況適用:

permissions.md +25 −23

Details

28 28 

29當您選擇"是,不要再問"且核准永久保存時(例如 Bash 命令或 WebFetch 網域),Claude Code 會將規則保存到 git 儲存庫根目錄的 `.claude/settings.local.json`,透過 [worktrees](https://code.claude.com/docs/zh-TW/worktrees.md) 解析到主簽出。該規則適用於該儲存庫中任何位置的未來工作階段,包括在子目錄和 worktrees 中啟動的工作階段。檔案修改核准不會保存到檔案:如表所示,它持續到工作階段結束。在某些情況下,例如在 git 儲存庫外或在 Windows 上,Claude Code 不使用儲存庫根目錄;[Claude Code 查找每個檔案的位置](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)列出這些情況以及它改為保存規則的位置。29當您選擇"是,不要再問"且核准永久保存時(例如 Bash 命令或 WebFetch 網域),Claude Code 會將規則保存到 git 儲存庫根目錄的 `.claude/settings.local.json`,透過 [worktrees](https://code.claude.com/docs/zh-TW/worktrees.md) 解析到主簽出。該規則適用於該儲存庫中任何位置的未來工作階段,包括在子目錄和 worktrees 中啟動的工作階段。檔案修改核准不會保存到檔案:如表所示,它持續到工作階段結束。在某些情況下,例如在 git 儲存庫外或在 Windows 上,Claude Code 不使用儲存庫根目錄;[Claude Code 查找每個檔案的位置](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)列出這些情況以及它改為保存規則的位置。

30 30 

31在 v2.1.211 之前,Claude Code 總是在啟動目錄中保存規則,因此在 worktree 或子目錄中授予的核准不適用於儲存庫的其餘部分。較早版本在子目錄或 worktree 中保存的規則仍然適用於在那裡啟動的工作階段。

32 

33有時權限提示只提供一次性核准,沒有"不要再問"選項,也沒有允許操作用於工作階段其餘部分的選項。Claude Code 只在權限提示可以向您顯示它們允許的所有內容時才提供這些選項,因此您從權限提示保存的規則只涵蓋其選項命名的內容。當權限提示只提供一次性核准時,請核准操作一次,或在 [`/permissions`](#manage-permissions) 中自行新增規則。若要停止以 `watch` 等 exec 包裝器開頭的命令,或帶有 `-delete` 等動作的 `find` 命令的權限提示,請參閱 [Exec 包裝器和 `find` 動作](#exec-wrappers-and-find-actions)。31有時權限提示只提供一次性核准,沒有"不要再問"選項,也沒有允許操作用於工作階段其餘部分的選項。Claude Code 只在權限提示可以向您顯示它們允許的所有內容時才提供這些選項,因此您從權限提示保存的規則只涵蓋其選項命名的內容。當權限提示只提供一次性核准時,請核准操作一次,或在 [`/permissions`](#manage-permissions) 中自行新增規則。若要停止以 `watch` 等 exec 包裝器開頭的命令,或帶有 `-delete` 等動作的 `find` 命令的權限提示,請參閱 [Exec 包裝器和 `find` 動作](#exec-wrappers-and-find-actions)。

34 32 

35### 在回答權限提示時新增評論33### 在回答權限提示時新增評論


218 216 

219> [!TIP]217> [!TIP]

220>218>

221> Claude Code 能辨識 shell 運算子,因此像 `Bash(safe-cmd *)` 這樣的規則不會授予它執行 `safe-cmd && other-cmd` 命令的權限。可辨識的命令分隔符號為 `&&`、`||`、`;`、`|`、`|&`、`&` 以及換行。規則必須各自獨立地比對每個子命令。219> Claude Code 能辨識 shell 運算子,因此像 `Bash(safe-cmd *)` 這樣的規則不會授予它執行 `safe-cmd && other-cmd` 命令的權限。可辨識的命令分隔符號為 `&&`、`||`、`;`、`|`、`|&`、`&` 以及換行。每個子命令都必須獲得允許,複合命令才能不經提示即執行,例如因為該子命令符合某條允許規則,或是[唯讀命令](#read-only-commands)。

222 220 

223只要有任何子命令符合,拒絕規則與詢問規則就會套用,包括巢狀於子 shell、命令替換或控制流程主體(例如 `for` 迴圈)內的命令。像 `Bash(git clean *)` 這樣的詢問規則,對於 `cd /tmp && git clean -f` 或 `echo "$(git clean -f)"` 仍會提示您,即使在[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)下也是如此。221只要有任何子命令符合,拒絕規則與詢問規則就會套用,包括巢狀於子 shell、命令替換或控制流程主體(例如 `for` 迴圈)內的命令。像 `Bash(git clean *)` 這樣的詢問規則,對於 `cd /tmp && git clean -f` 或 `echo "$(git clean -f)"` 仍會提示您,即使在[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)下也是如此。

224 222 


314 312 

315### PowerShell313### PowerShell

316 314 

317PowerShell 權限規則使用與 Bash 規則相同的形式。使用 `*` 的萬用字元可在任何位置比對,`:*` 後綴等同於結尾的 ` *`,而不帶參數的 `PowerShell` 或 `PowerShell(*)` 會比對每個命令。下列設定允許 `Get-ChildItem` 與 `git commit` 命令,同時封鎖 `Remove-Item`:315PowerShell 權限規則使用與 [Bash 規則](#wildcard-patterns)相同的形式,而不帶參數的 `PowerShell` 或 `PowerShell(*)` 會比對每個命令。下列設定允許 `Get-ChildItem` 與 `git commit` 命令,同時封鎖 `Remove-Item`:

318 316 

319```json theme={null}317```json theme={null}

320{318{


330}328}

331```329```

332 330 

333常見別名會在比對前標準化。為 cmdlet 名稱撰寫的規則也會比對其別名,因此 `PowerShell(Get-ChildItem *)` 也會比對 `gci`、`ls` 與 `dir`。比對不區分大小寫。331常見的別名會在比對前先正規化。針對 cmdlet 名稱撰寫的規則也會比對到這些別名,因此 `PowerShell(Get-ChildItem *)` 也會比對到 `gci`、`ls` 和 `dir`。比對不區分大小寫。

334 332 

335Claude Code 會解析 PowerShell AST,並獨立檢查複合命令中的每個命令。管線運算子 `|`、陳述式分隔符號 `;`,以及在 PowerShell 7+ 上的鏈結運算子 `&&` 與 `||`,會將複合命令拆分為子命令。規則必須比對每個子命令,複合命令才會被允許。333Claude Code 會解析 PowerShell AST,並獨立檢查複合命令中的每個命令。管線運算子 `|`、陳述式分隔符號 `;`,以及在 PowerShell 7+ 上的鏈結運算子 `&&` 與 `||`,會將複合命令拆分為子命令。每個子命令都必須獲得允許,複合命令才能不經提示即執行,例如符合某條允許規則。

336 334 

337### Read 和 Edit335### Read 和 Edit

338 336 


390 388 

391透過 `/permissions` 新增的規則,會依照您將它儲存至的設定檔所對應的那一列。389透過 `/permissions` 新增的規則,會依照您將它儲存至的設定檔所對應的那一列。

392 390 

393在 v2.1.211 及更新版本中,本機設定規則會錨定在工作階段的[主要工作目錄](#working-directories),而不是 Claude Code [儲存該檔案](#permission-system)的儲存庫根目錄。在從儲存庫根目錄啟動的工作階段中,這兩個目錄相同;在 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 工作階段中,像 `Edit(/src/**)` 這樣的共用規則會比對該 worktree 自己的 `src/` 目錄。391本機設定規則會錨定在工作階段的[主要工作目錄](#working-directories),而不是 Claude Code [儲存該檔案](#permission-system)的儲存庫根目錄。在從儲存庫根目錄啟動的工作階段中,這兩個目錄相同;在 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 工作階段中,像 `Edit(/src/**)` 這樣的共用規則會比對該 worktree 自己的 `src/` 目錄。

394 392 

395使用者設定中像 `Read(/secrets/**)` 這樣的拒絕規則,封鎖的是 `~/.claude/secrets/**`,而不是您專案中的 `secrets` 目錄。若要在使用者設定中撰寫適用於每個專案內部的規則,請改用 `//` 絕對路徑或 `~/` 相對於家目錄的路徑。393使用者設定中像 `Read(/secrets/**)` 這樣的拒絕規則,封鎖的是 `~/.claude/secrets/**`,而不是您專案中的 `secrets` 目錄。若要在使用者設定中撰寫適用於每個專案內部的規則,請改用 `//` 絕對路徑或 `~/` 相對於家目錄的路徑。

396 394 


524 522 

525若要在沒有此提示的情況下讀取網路共用上的檔案,請先為該共用提供本機路徑:523若要在沒有此提示的情況下讀取網路共用上的檔案,請先為該共用提供本機路徑:

526 524 

527* **Windows**:將共用對應至磁碟機代號,並在啟動 Claude Code 時以 `--add-dir` 傳入該磁碟機,如[工作目錄](#working-directories)所述。在您稍後以 `/add-dir` 新增、或在設定檔的 `additionalDirectories` 中列出的磁碟機下進行的讀取仍會提示。若要停止對應至 `Z:` 之共用的這些提示,請在 PowerShell 中以 `claude --add-dir Z:\` 啟動新的工作階段。525* **Windows**:將共用對應至磁碟機代號,並在啟動 Claude Code 時以 `--add-dir` 傳入該磁碟機,如[工作目錄](#working-directories)所述。對於對應至 `Z:` 的共用,請在 PowerShell 中執行 `claude --add-dir Z:\`。

528* **macOS 與 Linux**:將共用掛載至本機路徑,例如 `/mnt` 或 `/Volumes` 下的目錄,並從該處讀取檔案,如[工作目錄是網路路徑](https://code.claude.com/docs/zh-TW/errors.md#working-directory-is-a-network-path)所述526* **macOS 與 Linux**:將共用掛載至本機路徑,例如 `/mnt` 或 `/Volumes` 下的目錄,並從該處讀取檔案,如[工作目錄是網路路徑](https://code.claude.com/docs/zh-TW/errors.md#working-directory-is-a-network-path)所述

529 527 

530### WebFetch528### WebFetch


711 709 

712若要在工作階段中期從您[主要工作目錄](#working-directories)的子目錄載入 skills、命令和 subagents,請執行 `/add-dir` 並使用該子目錄的路徑。Claude Code 會為工作階段的其餘部分載入它們,而無需提示您或新增工作目錄,因為子目錄已經可讀。這需要 Claude Code v2.1.257 或更新版本。710若要在工作階段中期從您[主要工作目錄](#working-directories)的子目錄載入 skills、命令和 subagents,請執行 `/add-dir` 並使用該子目錄的路徑。Claude Code 會為工作階段的其餘部分載入它們,而無需提示您或新增工作目錄,因為子目錄已經可讀。這需要 Claude Code v2.1.257 或更新版本。

713 711 

714Claude Code 從目前工作目錄及其父目錄、您在 `~/.claude/` 的使用者目錄和受管理設定發現輸出樣式。Hooks 和其他 `.claude/settings.json` 金鑰從目前工作目錄的 `.claude/` 資料夾載入,沒有父目錄回退,同時也從您的使用者 `~/.claude/settings.json` 和受管理設定載入。`.claude/settings.local.json` 從 git 儲存庫根目錄載入,即使您在子目錄中啟動 Claude Code,除了 Claude Code [不使用儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)的情況,例如在 Windows 上;在 v2.1.211 之前,它也只從目前工作目錄載入。[Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/claude-code-features.md#control-filesystem-settings-with-settingsources) 工作階段在所有版本中從工作目錄載入它。712#### 輸出風格、hooks 和本機設定的載入位置

713 

714Claude Code 從目前工作目錄及其父目錄、您在 `~/.claude/` 的使用者目錄和受管理設定發現輸出風格。Hooks 和其他 `.claude/settings.json` 金鑰從目前工作目錄的 `.claude/` 資料夾載入,沒有父目錄備援,同時也從您的使用者 `~/.claude/settings.json` 和受管理設定載入。

715 

716`.claude/settings.local.json` 則從 git 儲存庫根目錄載入,即使您在子目錄中啟動 Claude Code,除了 Claude Code [不使用儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)的情況,例如在 Windows 上。

715 717 

716若要在專案間共享該設定,請使用以下方法之一:718若要在專案間共享該設定,請使用以下方法之一:

717 719 


765 767 

766Claude Code 以您啟動它的位置為鍵來儲存您接受的信任:768Claude Code 以您啟動它的位置為鍵來儲存您接受的信任:

767 769 

768* 在儲存庫中,Claude Code 會以 git 儲存庫根目錄作為信任的鍵,因此信任涵蓋整個儲存庫,除了任何巢狀在其中的 git 儲存庫(例如子模組)。在[工作樹](https://code.claude.com/docs/zh-TW/worktrees.md)中,它使用主簽出的根目錄,就像它對[已儲存規則](#permission-system)所做的一樣。770* 在儲存庫中,Claude Code 會以 git 儲存庫根目錄作為信任的鍵,因此信任涵蓋整個儲存庫,除了任何巢狀在其中的 git 儲存庫(例如子模組)。在 [worktree](https://code.claude.com/docs/zh-TW/worktrees.md) 中,它使用主簽出的根目錄,就像它對[已儲存規則](#permission-system)所做的一樣。

769* 在儲存庫外,Claude Code 會以您啟動它的目錄作為信任的鍵,信任涵蓋該目錄的任何子目錄,除了巢狀在其中的 git 儲存庫(例如複製)。每個涵蓋的子目錄隨後都會計為一個您信任其父目錄的資料夾。771* 在儲存庫外,Claude Code 會以您啟動它的目錄作為信任的鍵,信任涵蓋該目錄的任何子目錄,除了巢狀在其中的 git 儲存庫(例如複製)。每個涵蓋的子目錄隨後都會計為一個您信任其父目錄的資料夾。

770* 當您在主目錄中啟動時,Claude Code 只在目前工作階段內保持信任,不會將其寫入磁碟;請參閱[額外保護措施](https://code.claude.com/docs/zh-TW/security.md#additional-safeguards)說明。772* 當您在家目錄中啟動時,Claude Code 只在目前工作階段內保持信任,不會將其寫入磁碟;請參閱[額外保護措施](https://code.claude.com/docs/zh-TW/security.md#additional-safeguards)說明。

771 773 

772Claude Code 只在互動工作階段中顯示信任對話框。`claude -p` 執行或 SDK 工作階段永遠不會顯示它,信任父資料夾不會計入這些規則,因此[您信任資料夾前執行的內容](#what-runs-before-you-trust-a-folder)說明了在這兩種情況下 Claude Code 仍然使用的儲存庫內容。774Claude Code 只在互動工作階段中顯示信任對話框。`claude -p` 執行或 SDK 工作階段永遠不會顯示它,信任父資料夾不會計入這些規則,因此[您信任資料夾前執行的內容](#what-runs-before-you-trust-a-folder)說明了在這兩種情況下 Claude Code 仍然使用的儲存庫內容。

773 775 

774在啟動或重新啟動[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)之前,Claude Code 也會檢查工作階段執行所在目錄的工作區信任。如果您從未信任的目錄中的終端執行 `claude --bg`,信任對話框會先出現,一旦您接受它,工作階段就會啟動。在無法出現對話框的地方(例如在指令碼中),命令會改為以[`Workspace not trusted`](https://code.claude.com/docs/zh-TW/errors#workspace-not-trusted-when-dispatching-a-background-session)錯誤結束。776在啟動或重新啟動[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)之前,Claude Code 也會檢查工作階段執行所在目錄的工作區信任。如果您從未信任的目錄中的終端機執行 `claude --bg`,信任對話框會先出現,一旦您接受它,工作階段就會啟動。在無法出現對話框的地方(例如在指令碼中),命令會改為以[`Workspace not trusted`](https://code.claude.com/docs/zh-TW/errors#workspace-not-trusted-when-dispatching-a-background-session)錯誤結束。

775 777 

776### 當您的本機設定檔案需要信任時778### 當您的本機設定檔案需要信任時

777 779 


779 781 

780Claude Code 執行 git 來區分兩者,並且只有在您信任資料夾後才執行 git:您接受了它的信任對話框或其父目錄的信任對話框,其信任延伸到它,或您在 `-p` 或 SDK 工作階段中,這被視為已接受。在此之前,您啟動 Claude Code 的位置決定了該檔案規則會發生什麼:782Claude Code 執行 git 來區分兩者,並且只有在您信任資料夾後才執行 git:您接受了它的信任對話框或其父目錄的信任對話框,其信任延伸到它,或您在 `-p` 或 SDK 工作階段中,這被視為已接受。在此之前,您啟動 Claude Code 的位置決定了該檔案規則會發生什麼:

781 783 

782* **在您的設定主目錄中:** Claude Code 會立即套用該資料夾的 `.claude/settings.local.json`,無需執行 git。您的設定主目錄是您的主目錄,或是其 `.claude` 子目錄已被您設定為 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars#variables) 的目錄。如果該 `CLAUDE_CONFIG_DIR` 目錄位於 git 儲存庫內,且 Claude Code 改為[將您的本機設定保留在儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file),它會像在其他地方一樣暫不套用這些規則。784* **在您的設定主目錄中:** Claude Code 會立即套用該資料夾的 `.claude/settings.local.json`,無需執行 git。您的設定主目錄是您的家目錄,或是其 `.claude` 子目錄已被您設定為 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars#variables) 的目錄。如果該 `CLAUDE_CONFIG_DIR` 目錄位於 git 儲存庫內,且 Claude Code 改為[將您的本機設定保留在儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file),它會像在其他地方一樣暫不套用這些規則。

783* **其他任何地方:** Claude Code 會像對待專案設定一樣暫不套用該檔案的規則。檢查執行後,Claude Code 會套用未追蹤檔案的規則,或位於任何 git 儲存庫外的目錄中的檔案的規則,即使您尚未信任該確切資料夾。785* **其他任何地方:** Claude Code 會像對待專案設定一樣暫不套用該檔案的規則。檢查執行後,Claude Code 會套用未追蹤檔案的規則,或位於任何 git 儲存庫外的目錄中的檔案的規則,即使您尚未信任該確切資料夾。

784 786 

785> [!NOTE]787> [!NOTE]

786>788>

787> 設定主目錄例外只會跳過信任步驟。`~/.claude/settings.local.json` 仍然是[本機範圍](https://code.claude.com/docs/zh-TW/settings.md#compare-the-scope-of-each-settings-file),因此 Claude Code 只在您在主目錄本身啟動的工作階段中讀取它,而不是在每個專案中。若要在所有專案中套用權限規則,請改為將它們新增到您的使用者設定:`~/.claude/settings.json` 或設定 `CLAUDE_CONFIG_DIR` 時的 `$CLAUDE_CONFIG_DIR/settings.json`。789> 設定主目錄例外只會跳過信任步驟。`~/.claude/settings.local.json` 仍然是[本機範圍](https://code.claude.com/docs/zh-TW/settings.md#compare-the-scope-of-each-settings-file),因此 Claude Code 只在您在家目錄本身啟動的工作階段中讀取它,而不是在每個專案中。若要在所有專案中套用權限規則,請改為將它們新增到您的使用者設定:`~/.claude/settings.json` 或設定 `CLAUDE_CONFIG_DIR` 時的 `$CLAUDE_CONFIG_DIR/settings.json`。

788 790 

789### 您信任資料夾前執行的內容791### 您信任資料夾前執行的內容

790 792 

791每一列是儲存庫可以提供的一種內容。列是您尚未信任資料夾本身的兩種情況:您只信任了父資料夾,或您在那裡執行了 `claude -p` 或 SDK,這永遠不會顯示信任對話框。父資料夾列不適用於[巢狀儲存庫](#project-allow-rules-and-workspace-trust)內:在互動工作階段中 Claude Code 會為其顯示信任對話框,`claude -p` 或 SDK 執行會遵循 `claude -p` 列。793每一列是儲存庫可以提供的一種內容。各欄是您尚未信任資料夾本身的兩種情況:您只信任了父資料夾,或您在那裡執行了 `claude -p` 或 SDK,這永遠不會顯示信任對話框。父資料夾欄不適用於[巢狀儲存庫](#project-allow-rules-and-workspace-trust)內:在互動工作階段中 Claude Code 會為其顯示信任對話框,在那裡執行的 `claude -p` 或 SDK 會遵循 `claude -p` 欄。

792 794 

793| 儲存庫提供的內容 | 您只信任了父資料夾 | `claude -p` 或 SDK,資料夾從未被信任 |795| 儲存庫提供的內容 | 您只信任了父資料夾 | `claude -p` 或 SDK,資料夾從未被信任 |

794| :- | :- | :- |796| :- | :- | :- |

795| 設定檔案中的 [Hooks](https://code.claude.com/docs/zh-TW/hooks.md)、[`env`](https://code.claude.com/docs/zh-TW/settings-reference#env) 區塊和輔助命令(例如 [`apiKeyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#apikeyhelper)),以及專案技能的 [hooks](https://code.claude.com/docs/zh-TW/hooks.md#hooks-in-skills-and-agents) 和 [`allowed-tools`](https://code.claude.com/docs/zh-TW/skills#pre-approve-tools-for-a-skill) | 已使用 | 已使用。工作區信任在任何工作階段中都不會限制技能的 `allowed-tools` |797| 設定檔案中的 [hook](https://code.claude.com/docs/zh-TW/hooks.md)、[`env`](https://code.claude.com/docs/zh-TW/settings-reference#env) 區塊和輔助命令(例如 [`apiKeyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#apikeyhelper)),以及專案 skill 的 [hook](https://code.claude.com/docs/zh-TW/hooks.md#hooks-in-skills-and-agents) 和 [`allowed-tools`](https://code.claude.com/docs/zh-TW/skills#pre-approve-tools-for-a-skill) | 已使用 | 已使用。工作區信任在任何工作階段中都不會限制 skill 的 `allowed-tools` |

796| `.claude/settings.json` 中的 `permissions.allow` 規則和 `additionalDirectories` | 在您接受信任對話框之前不使用,對話框會再次出現列出它們 | 不使用。Claude Code 會列印 [`this workspace has not been trusted`](https://code.claude.com/docs/zh-TW/errors#workspace-has-not-been-trusted) 警告到 stderr |798| `.claude/settings.json` 中的 `permissions.allow` 規則和 `additionalDirectories` | 在您接受信任對話框之前不使用,對話框會再次出現列出它們 | 不使用。Claude Code 會列印 [`this workspace has not been trusted`](https://code.claude.com/docs/zh-TW/errors#workspace-has-not-been-trusted) 警告到 stderr |

797| 專案 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#hooks-in-subagent-frontmatter) 中的 frontmatter hooks、專案 [`@skills-dir` 外掛程式](https://code.claude.com/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository),以及來自儲存庫或 `--add-dir` 目錄的 [`extraKnownMarketplaces`](https://code.claude.com/docs/zh-TW/settings-reference#extraknownmarketplaces) 項目 | 不使用,不提供對話框 | 不使用 |799| 專案 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md#hooks-in-subagent-frontmatter) 中的 frontmatter hook、專案 [`@skills-dir` 外掛](https://code.claude.com/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository),以及來自儲存庫或 `--add-dir` 目錄的 [`extraKnownMarketplaces`](https://code.claude.com/docs/zh-TW/settings-reference#extraknownmarketplaces) 項目 | 不使用,不提供對話框 | 不使用 |

798| 來自儲存庫或 `--add-dir` 目錄的 subagent 的 frontmatter 中的內聯 [`mcpServers`](https://code.claude.com/docs/zh-TW/sub-agents#scope-mcp-servers-to-a-subagent) | 不使用,不提供對話框 | 不使用 |800| 來自儲存庫或 `--add-dir` 目錄的 subagent 的 frontmatter 中的內聯 [`mcpServers`](https://code.claude.com/docs/zh-TW/sub-agents#scope-mcp-servers-to-a-subagent) | 不使用,不提供對話框 | 不使用 |

799| `.mcp.json` 中的伺服器,包括儲存庫[在其自己的設定中批准的伺服器](https://code.claude.com/docs/zh-TW/mcp.md#project-server-approvals-and-workspace-trust) | Claude Code 在連接它們之前會詢問您。儲存庫自己的批准不計算 | 連接而不詢問,無論是否批准。SDK 只在 `settingSources` 包含專案設定時才載入它們。同一資料夾中的 `claude mcp list` 仍然將此類伺服器報告為待處理 |801| `.mcp.json` 中的伺服器,包括儲存庫[在其自己的設定中核准的伺服器](https://code.claude.com/docs/zh-TW/mcp.md#project-server-approvals-and-workspace-trust) | Claude Code 在連接它們之前會詢問您。儲存庫自己的核准不計算 | 連接而不詢問,無論是否核准。SDK 只在 `settingSources` 包含專案設定時才載入它們。同一資料夾中的 `claude mcp list` 仍然將此類伺服器報告為待處理 |

800| `.mcp.json` 中伺服器上的 [`headersHelper`](https://code.claude.com/docs/zh-TW/mcp#trust-a-folder-before-its-headershelper-runs) | 在您接受信任對話框之前不執行,對話框會再次出現命名輔助程式的聲明位置。Claude Code 在此之前僅使用其靜態 `headers` 連接伺服器 | 不執行。Claude Code 使用其靜態 `headers` 連接伺服器,並為每個伺服器列印 [`headersHelper not run`](https://code.claude.com/docs/zh-TW/errors#headershelper-not-run) 行到 stderr |802| `.mcp.json` 中伺服器上的 [`headersHelper`](https://code.claude.com/docs/zh-TW/mcp#trust-a-folder-before-its-headershelper-runs) | 在您接受信任對話框之前不執行,對話框會再次出現命名輔助程式的宣告位置。Claude Code 在此之前僅使用其靜態 `headers` 連接伺服器 | 不執行。Claude Code 僅使用其靜態 `headers` 連接伺服器,並為每個伺服器列印 [`headersHelper not run`](https://code.claude.com/docs/zh-TW/errors#headershelper-not-run) 行到 stderr |

801 803 

802對於需要此確切資料夾被信任的列,手動信任它:在 `~/.claude.json` 中設定 `projects["<path>"].hasTrustDialogAccepted` 為 `true`,其中 `<path>` 是儲存庫根目錄,或儲存庫外的資料夾本身。Claude Code 在跳過的 subagent hook 或內聯 MCP 伺服器的偵錯日誌行中列印確切的鍵,在跳過的允許規則的 stderr 警告中列印,以及在跳過的輔助程式的 `headersHelper not run` 行中列印。804對於需要此確切資料夾被信任的列,請手動信任它:在 `~/.claude.json` 中設定 `projects["<path>"].hasTrustDialogAccepted` 為 `true`,其中 `<path>` 是儲存庫根目錄,或儲存庫外的資料夾本身。Claude Code 在跳過的 subagent hook 或內聯 MCP 伺服器的偵錯日誌行中列印確切的鍵,在跳過的允許規則的 stderr 警告中列印,以及在跳過的輔助程式的 `headersHelper not run` 行中列印。

803 805 

804在您在未編寫的儲存庫中執行 `claude -p` 之前,決定它可能在您的機器上執行什麼:806在您在未編寫的儲存庫中執行 `claude -p` 之前,請決定它可以在您的機器上執行什麼:

805 807 

806* 傳遞 `--setting-sources user`,或設定 SDK 的 `settingSources` 而不包含專案設定,以便 Claude Code 既不讀取專案的設定檔案也不讀取其 `.mcp.json`808* 傳遞 `--setting-sources user`,或設定 SDK 的 `settingSources` 而不包含專案設定,以便 Claude Code 既不讀取專案的設定檔案也不讀取其 `.mcp.json`

807* 使用 [`--bare`](https://code.claude.com/docs/zh-TW/headless#start-faster-with-bare-mode) 啟動,以便 Claude Code 不從專案讀取任何 hooks、技能、自訂命令、subagents、外掛程式或 `.mcp.json` 伺服器。專案的 `env` 區塊和輔助程式(例如其設定檔案中的 `awsAuthRefresh`)仍然適用,Claude Code 只從 `--settings` 讀取 `apiKeyHelper`809* 使用 [`--bare`](https://code.claude.com/docs/zh-TW/headless#start-faster-with-bare-mode) 啟動,以便 Claude Code 不從專案讀取任何 hook、skill、自訂命令、subagent、外掛或 `.mcp.json` 伺服器。專案的 `env` 區塊和輔助程式(例如其設定檔案中的 `awsAuthRefresh`)仍然適用,Claude Code 只從 `--settings` 讀取 `apiKeyHelper`

808* 傳遞 `--settings '{"disableAllHooks": true}'` 以[關閉該執行的 hooks](https://code.claude.com/docs/zh-TW/hooks.md#disable-or-remove-hooks)。僅在您的使用者設定中設定它是不夠的,因為儲存庫的專案設定優先於您的設定,並且可以將其設定回 `false`810* 傳遞 `--settings '{"disableAllHooks": true}'` 以[關閉該執行的 hook](https://code.claude.com/docs/zh-TW/hooks.md#disable-or-remove-hooks)。僅在您的使用者設定中設定它是不夠的,因為儲存庫的專案設定優先於您的設定,並且可以將其設定回 `false`

809* 新增 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目以在每個工作階段類型中按名稱拒絕 `.mcp.json` 伺服器811* 新增 [`disabledMcpjsonServers`](https://code.claude.com/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目以在每個工作階段類型中按名稱拒絕 `.mcp.json` 伺服器

810 812 

811## 範例設定813## 範例設定

Details

313 313 

314若要查看 API 在請求期間自行執行的工具呼叫,例如對 [advisor 工具](https://code.claude.com/docs/zh-TW/advisor.md)的呼叫,請讀取 `result.serverToolUses`。Claude Code 不會執行這些呼叫,因此不會針對它們觸發任何 `tool.call` 或 `tool.check` hook。當回應中沒有此類呼叫時,該欄位不會存在,且此欄位需要 Claude Code v2.1.290 或更新版本。314若要查看 API 在請求期間自行執行的工具呼叫,例如對 [advisor 工具](https://code.claude.com/docs/zh-TW/advisor.md)的呼叫,請讀取 `result.serverToolUses`。Claude Code 不會執行這些呼叫,因此不會針對它們觸發任何 `tool.call` 或 `tool.check` hook。當回應中沒有此類呼叫時,該欄位不會存在,且此欄位需要 Claude Code v2.1.290 或更新版本。

315 315 

316#### 將請求送往不同的模型

317 

318如果 `turn.step` 請求在 `model` 為別名(例如 `haiku`)時因模型錯誤而失敗,請更新至 Claude Code v2.1.309 或更新版本,或使用完整的模型 ID。在 v2.1.309 之前,別名會按原樣送出。

319 

320若要將請求送往不同的模型,請將變更了 `model` 的事件傳給 `next`,例如 `yield* next({ ...e, model: 'haiku' })`。

321 

316### 變更或拒絕設定讀取322### 變更或拒絕設定讀取

317 323 

318`settings.read` hook 會在 mod 的讀取以及 Claude Code 本身的讀取時執行:324使用 `settings.read` hook 來變更或拒絕設定讀取,無論是 mod 的讀取還是 Claude Code 本身的讀取:

319 325 

320* **mod 的讀取**:mod 呼叫 [`$.settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/api#read-one-source-or-one-key)。326* **mod 的讀取**:mod 呼叫 [`$.settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/api#read-one-source-or-one-key)。

321* **Claude Code 本身的讀取**:Claude Code 建立工作階段的合併設定。當設定或已載入的外掛變更時,此讀取會重複進行。327* **Claude Code 本身的讀取**:您的 hook 會在 Claude Code 合併工作階段的設定時首次執行,此時工作階段的 mod 已載入完成。當設定或已載入的外掛變更時,您的 hook 會再次執行。

322 328 

323在依賴任一讀取之前,請先檢查防護與您的版本:329請檢查哪些 mod 會收到此事件,以及您的 Claude Code 版本:

324 330 

325* **內建防護**:在有受管設定,或以 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* **內建防護**:在有受管設定,或以 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)。

326* **版本**:此事件在 Claude Code 本身的讀取時觸發,以及 `e.layers` 欄位,需要 Claude Code v2.1.304 或更新版本。332* **版本**:此事件在 Claude Code 本身的讀取時觸發,以及 `e.layers` 欄位,需要 Claude Code v2.1.304 或更新版本。


336 342 

337#### 區分 Claude Code 本身的讀取與 mod 的讀取343#### 區分 Claude Code 本身的讀取與 mod 的讀取

338 344 

339在 [Claude Code 本身的讀取](#settings-read-hook)中,[`next.origin`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#the-hook-function) 為 `{ plugin: 'engine', tier: 'core' }`,而在 mod 的讀取中,`next.origin.plugin` 為發出呼叫的 mod 名稱。345請檢查 [`next.origin`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#the-hook-function):

346 

347* **Claude Code 本身的讀取**:`{ plugin: 'engine', tier: 'core' }`

348* **mod 的讀取**:`plugin` 為發出呼叫的 mod 名稱

340 349 

341#### `settings.read` hook 可傳回的內容350#### `settings.read` hook 可傳回的內容

342 351 

343您的 hook 可以原封不動地傳回 [`next(e)`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#the-hook-function) 的結果、自己的 `{ value }`,或 `{ deny: reason }`。在 [Claude Code 本身的讀取](#settings-read-hook)和 mod 的讀取中,`{ value }` 會取代讀取所得的內容,而 `{ deny: reason }` 會拒絕該讀取:352原封不動地傳回 [`next(e)`](#settings-read-next) 的結果即可維持讀取不變,或傳回下列其中一項:

344 353 

345| 傳回 | 在 Claude Code 本身的讀取中 | 在 mod 的讀取中 |354| 傳回 | 在 [Claude Code 本身的讀取](#settings-read-hook)中 | 在 mod 的讀取中 |

346| :- | :- | :- |355| :- | :- | :- |

347| `{ value }` | 對於您變更的每個鍵,若您傳回的內容[符合該鍵的 schema](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#settings-read-key-refused),它會取代工作階段合併設定中該鍵的整個值 | 該 mod 的呼叫會解析為您的 `value`,或解析為從您的 `value` 中取出、它所要求的 `key`,因此請傳回完整物件,而非陣列 |356| `{ value }` | 對於每個變更的鍵,若您的值[符合該鍵的 schema](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#settings-read-key-refused),您會取代工作階段合併設定中該鍵的整個值 | 該 mod 的呼叫會解析為您的 `value`,或解析為從您的 `value` 中取出、它所要求的 `key`,因此請傳回完整物件,而非陣列 |

348| `{ deny: reason }` | 工作階段會保留在任何 hook 回應之前所合併的設定,且[偵錯日誌會記錄您的 `reason`](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot#settings-read-refused) | 該 mod 的呼叫會以 `<calling mod>: $.settings.read: <reason>` 拒絕 |357| `{ deny: reason }` | 工作階段會保留在任何 hook 回應之前所合併的設定,且[偵錯日誌會記錄您的 `reason`](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot#settings-read-refused) | 該 mod 的呼叫會以 `<calling mod>: $.settings.read: <reason>` 拒絕 |

349 358 

350在 Claude Code 本身的讀取中,請以 [`next(e)` 的 `value`](#settings-read-next) 為基礎建立您的 `{ value }`,因為您遺漏的鍵會變成未設定。對於 Claude Code 從各來源分別讀取的鍵(例如 `env`),在您的 `value` 中變更它[不會有任何效果](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#settings-read-key-no-effect)。359在 Claude Code 本身的讀取中,請以 [`next(e)` 的 `value`](#settings-read-next) 為基礎建立您的 `{ value }`,因為您遺漏的鍵會變成未設定。對於 Claude Code 從各來源分別讀取的鍵(例如 `env`),在您的 `value` 中變更它[不會有任何效果](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#settings-read-key-no-effect)。


373})382})

374```383```

375 384 

376在 Claude Code 本身的讀取中,如果您的 hook 傳回超出該鍵 schema 的值(例如字串),則只有該鍵會保留在任何 hook 回應之前所合併的值。偵錯日誌接著會顯示 [`the answer for <key> is no value the key can hold`](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot#settings-read-key-refused)。如果您的值符合 schema,但該鍵仍未變更,請參閱[為何傳回的鍵沒有效果](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#settings-read-key-no-effect)。385在 Claude Code 本身的讀取中,如果您的 hook 傳回超出該鍵 schema 的值(例如字串),則只有該鍵會保留在任何 hook 回應之前所合併的值。偵錯日誌接著會顯示 [`the answer for <key> is no value the key can hold`](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot#settings-read-key-refused)。如果您的值符合 schema,但該鍵仍未變更,請參閱[為何鍵沒有生效](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#settings-read-key-no-effect)。

377 386 

378### 處理設定 hook 事件387### 處理設定 hook 事件

379 388 

Details

421Note: Type a note and press Enter421Note: Type a note and press Enter

422```422```

423 423 

424加入 `rows` 可讓欄位容納多行。按 Enter 仍會送出,而在 Enter 前加上反斜線會開始新的一行;在[終端機支援的情況下](https://code.claude.com/docs/zh-TW/terminal-config.md#enter-multiline-prompts),Shift+Enter 也有相同效果。圖庫中展示了[具有 `rows` 的欄位](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#input)。424將 `rows` 設為 2 或以上,即可取得[容納多行的欄位](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md#input)。

425 425 

426[介面圖庫](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md)提供大多數元素的範例和螢幕截圖。此表列出每個元素:426[介面圖庫](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md)提供大多數元素的範例和螢幕截圖。此表列出每個元素:

427 427 


546| 鍵 | 它執行的操作 |546| 鍵 | 它執行的操作 |

547| :- | :- |547| :- | :- |

548| Tab | 移動到下一個控制項 |548| Tab | 移動到下一個控制項 |

549| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。在 `Input` 中,它們會先[在欄位的各列之間移動](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md#input)。 |549| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。在終端機的 `Input` 中,它們會[在欄位的各列之間移動](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md#input),而從欄位的第一列或最後一列,它們會移動到其前一個或後一個控制項。 |

550| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |550| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |

551| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |551| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |

552| Page Up、Page Down、Home 和 End | 當您的窗格或帶狀區域的列數超過它可以顯示的列數時,滾動它 |552| Page Up、Page Down、Home 和 End | 當您的窗格或帶狀區域的列數超過它可以顯示的列數時,滾動它 |

Details

110 110 

111### 命令與設定111### 命令與設定

112 112 

113命令與設定事件在命令執行或被列出時、`/config` 列被顯示或變更時,以及讀取設定時觸發:

114 

115| 事件 | 觸發時機 | hook 可回傳 |113| 事件 | 觸發時機 | hook 可回傳 |

116| :- | :- | :- |114| :- | :- | :- |

117| [`command.run`](https://code.claude.com/docs/zh-TW/plugins/mods/api#add-a-command) | 命令即將執行時 | `{ text }`、`{}` 或 `next(e)` |115| [`command.run`](https://code.claude.com/docs/zh-TW/plugins/mods/api#add-a-command) | 命令即將執行時 | `{ text }`、`{}` 或 `next(e)` |

118| `command.describe` | 每個命令一次,用於命令清單 | `{ description, argumentHint, isHidden }` |116| `command.describe` | 每個命令一次,用於命令清單 | `{ description, argumentHint, isHidden }` |

119| `config.set` | `/config` 列即將變更時 | `next({ ...e, value })` 或 `{ deny: reason }` |117| `config.set` | `/config` 列即將變更時 | `next({ ...e, value })` 或 `{ deny: reason }` |

120| `config.describe` | 每個 `/config` 列一次 | `{ label, description, isHidden }` |118| `config.describe` | 每個 `/config` 列一次 | `{ label, description, isHidden }` |

121| [`settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook) | mod 呼叫 [`$.settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network),或 Claude Code 建置工作階段的合併設定時 | `next(e)`、`{ value }` 或 `{ deny: reason }` |119| [`settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook) | mod 呼叫 [`$.settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network),或 Claude Code 建置工作階段的合併設定時。Claude Code 自身的讀取與 `e.layers` 需要 Claude Code v2.1.304 或更新版本 | `next(e)`、`{ value }` 或 `{ deny: reason }` |

122 120 

123#### `settings.read` 上的 `e.layers` 與 `e.source`121#### `settings.read` 上的 `e.layers` 與 `e.source`

124 122 

125* **`e.layers`**:每個使用中且包含設定的來源各一個 `{ source, settings }` 物件,[優先順序](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)最低者排在最前。請參閱[`settings.read` hook 接收的內容](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-receives)。123* **`e.layers`**:每個使用中且包含設定的來源各一個 `{ source, settings }` 物件,[優先順序](https://code.claude.com/docs/zh-TW/settings.md#settings-precedence)最低者排在最前。請參閱[`settings.read` hook 接收的內容](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-receives)。

126* **`e.source`**:mod 所要求的單一來源,例如 `$.settings.read({ source: 'policy' })`。在 Claude Code 自身的讀取,以及任何其他對合併設定的讀取中則不存在124* **`e.source`**:mod 所要求的單一來源,例如 `$.settings.read({ source: 'policy' })`。在 Claude Code 自身的讀取,以及對合併設定的讀取中則不存在

127 

128在 `settings.read` 上,於 Claude Code 自身讀取時觸發事件,以及 `e.layers` 欄位,需要 Claude Code v2.1.304 或更新版本。關於此 hook 何時執行以及此 hook 可回傳的內容(附範例),請參閱[變更或拒絕設定讀取](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#settings-read-hook)。

129 125 

130### 回合126### 回合

131 127 


271| :- | :- | :-: | :-: | :-: |267| :- | :- | :-: | :-: | :-: |

272| [`Box`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `key`、flex 版面配置、[`gap`、`padding`、`margin`](#box-spacing-steps)、`width`、`height`、`minWidth`、`minHeight`、[`borderStyle`](#box-border-styles)、`borderColor`、`borderDimColor`、`backgroundColor`、`position`、`top`、`left`、`right`、`bottom`、`overflow`、`display`、`hover` | ✓ | ✓ | ✓ |268| [`Box`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `key`、flex 版面配置、[`gap`、`padding`、`margin`](#box-spacing-steps)、`width`、`height`、`minWidth`、`minHeight`、[`borderStyle`](#box-border-styles)、`borderColor`、`borderDimColor`、`backgroundColor`、`position`、`top`、`left`、`right`、`bottom`、`overflow`、`display`、`hover` | ✓ | ✓ | ✓ |

273| [`Text`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `color`、`backgroundColor`、[`bold`](#text-bold)、`italic`、`underline`、`strikethrough`、`dimColor`、`inverse`、`wrap`、[`size`、`weight`、`mono`、`tabular`](#text-typography)、`hover` | ✓ | ✓ | ✓ |269| [`Text`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `color`、`backgroundColor`、[`bold`](#text-bold)、`italic`、`underline`、`strikethrough`、`dimColor`、`inverse`、`wrap`、[`size`、`weight`、`mono`、`tabular`](#text-typography)、`hover` | ✓ | ✓ | ✓ |

274| [`Button`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#respond-to-presses-and-typing) | `key`、`label`、`onPress`、`hotkey`、`plain`、`dimColor`、`autoFocus`、`action`、`hover` | ✓ | ✓ | ✓ |270| [`Button`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#respond-to-presses-and-typing) | `key`、`label`、`children`、`onPress`、`hotkey`、`plain`、`dimColor`、`autoFocus`、`action`、`variant`、`role`、`hover` | ✓ | ✓ | ✓ |

275| [`Link`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#link-in-the-desktop-app) | `href`、`label`。請參閱[限制](#limits)。 | ✓ | ✓ | ✓ |271| [`Link`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#link-in-the-desktop-app) | `href`、`label`。請參閱[限制](#limits)。 | ✓ | ✓ | ✓ |

276| [`Code`](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#show-code-and-changes) | `source`、`language`、`path`、`startLine`、`format`、`wrap` | ✓ | ✓ | ✓ |272| [`Code`](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#show-code-and-changes) | `source`、`language`、`path`、`startLine`、`format`、`wrap` | ✓ | ✓ | ✓ |

277| `Markdown` | `text`、`key`、`dimColor`、`onLinkPress`、`pressableLinks` | ✓ | ✓ | ✓ |273| `Markdown` | `text`、`key`、`dimColor`、`onLinkPress`、`pressableLinks` | ✓ | ✓ | ✓ |


288* **橫帶上的數字 hotkey**:橫帶中按鈕上的數字 `hotkey`,在使用者於空白提示詞中單獨輸入該數字並停頓時也會觸發284* **橫帶上的數字 hotkey**:橫帶中按鈕上的數字 `hotkey`,在使用者於空白提示詞中單獨輸入該數字並停頓時也會觸發

289* **收合的橫帶**:當橫帶處於[收合](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#when-the-user-collapses-the-band)狀態時,`action` 綁定和 hotkey 都不會按下其中的按鈕285* **收合的橫帶**:當橫帶處於[收合](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#when-the-user-collapses-the-band)狀態時,`action` 綁定和 hotkey 都不會按下其中的按鈕

290* **兩個按鈕使用同一個 hotkey**:當同一次繪製中有兩個按鈕指定相同的 `hotkey` 時,由後者取得286* **兩個按鈕使用同一個 hotkey**:當同一次繪製中有兩個按鈕指定相同的 `hotkey` 時,由後者取得

287* **`variant`**:`primary` 或 `secondary`,其他任何值都會拋出錯誤。在終端機中,`primary` 按鈕會以強調色繪製,除非它是 `plain`。

288* **`role`**:`dismiss` 將按鈕標記為關閉按鈕,其他任何值都會拋出錯誤。請在您的 `onPress` 中執行關閉動作。在包含文字和一列按鈕的橫帶中,Desktop 應用程式可以將該列的第一個 `dismiss` 按鈕繪製為其專屬的關閉控制項。終端機則會以如同未設定 `role` 的方式繪製該按鈕。

289 

290`Button` 可以用 `children` 取代 `label`:

291 

292* **children 可以是什麼**:字串和 `Text` 元素,例如名稱後接淡色的細節,或是彩色標籤。Claude Code 會拒絕 `Button` 內的其他任何元素。

293* **為按鈕命名**:`label` 為按鈕命名,預設為其 children 的文字。若按鈕的 children 不是單一字串,請為其指定 `key` 或 `label`。

294* **在終端機中**:children 會繪製在 label 原本的位置,在其上任何位置按下都算作一次按下,因此您可以將清單的每一列做成單一按鈕

295* **在 Desktop 應用程式和 VS Code 擴充功能中**:按鈕會繪製其 `label`

296 

297> [!NOTE]

298>

299> children 不是單一字串的 `Button` 需要 Claude Code v2.1.295 或更新版本。

291 300 

292`autoFocus` 在任何控制項上都只接受 `true`,因此若要關閉,請省略此 prop。301`autoFocus` 在任何控制項上都只接受 `true`,因此若要關閉,請省略此 prop。

293 302 


295 304 

296* **`Box`**:`position` 及其 `top`、`left`、`right` 和 `bottom`、`alignSelf`、`borderDimColor` 和 `hover`305* **`Box`**:`position` 及其 `top`、`left`、`right` 和 `bottom`、`alignSelf`、`borderDimColor` 和 `hover`

297* **`Text`**:`size`、`mono`、`tabular` 和 `hover`306* **`Text`**:`size`、`mono`、`tabular` 和 `hover`

298* **`Button`**:`hotkey`、`plain`、`autoFocus`、`action` 和 `hover`,因此使用者在該處要透過點擊按下按鈕,或在按鈕取得焦點後按 Enter307* **`Button`**:`hotkey`、`plain`、`autoFocus`、`action` 和 `hover`,因此使用者在該處要透過點擊按下按鈕,或在按鈕取得焦點後按 Enter。擴充功能也會忽略 `variant` 和 `role`。

299* **`Code`**:`language`、`path`、`startLine`、`format` 和 `wrap`,因此程式碼繪製時不會有色彩或行號,而 `format: 'diff'` 區塊會顯示差異的原始文字308* **`Code`**:`language`、`path`、`startLine`、`format` 和 `wrap`,因此程式碼繪製時不會有色彩或行號,而 `format: 'diff'` 區塊會顯示差異的原始文字

300* **`Input` 和 `Select`**:`autoFocus`309* **`Input` 和 `Select`**:`autoFocus`,以及 `Input` 上的 `rows`

301* **`Svg`**:`isInteractive`310* **`Svg`**:`isInteractive`

302 311 

303### `Box` 框線樣式312### `Box` 框線樣式


364| `.catch` 處理常式的執行時間 | 1 秒 |373| `.catch` 處理常式的執行時間 | 1 秒 |

365| 所有 `session.end` hook 合計 | 與 [SessionEnd hook 預算](https://code.claude.com/docs/zh-TW/hooks.md#sessionend-input)相同,除非您變更,否則為 1.5 秒,自您設定中的 `SessionEnd` hook 完成時起算 |374| 所有 `session.end` hook 合計 | 與 [SessionEnd hook 預算](https://code.claude.com/docs/zh-TW/hooks.md#sessionend-input)相同,除非您變更,否則為 1.5 秒,自您設定中的 `SessionEnd` hook 完成時起算 |

366| `$.process.run` 逾時 | 預設 30 秒,最多 10 分鐘 |375| `$.process.run` 逾時 | 預設 30 秒,最多 10 分鐘 |

376| `$.process.run` `stdout` 與 `stderr` | 各 4 MiB。當其中之一被截斷時,`isStdoutTruncated` 或 `isStderrTruncated` 為 `true`。 |

367| `$.model.complete` `maxTokens` | 預設 1024,最多 64,000 或模型的輸出上限 |377| `$.model.complete` `maxTokens` | 預設 1024,最多 64,000 或模型的輸出上限 |

368| `$.fs.read` 與 `$.fs.write` | 單一檔案 4 MiB |378| `$.fs.read` 與 `$.fs.write` | 單一檔案 4 MiB |

369| `$.http.fetch` 請求本文 | 4 MiB,以字元計算。本文較大的呼叫會被拒絕。 |379| `$.http.fetch` 請求本文 | 4 MiB,以字元計算。本文較大的呼叫會被拒絕。 |


381| `$.store` | 總計 4 MiB 的 JSON |391| `$.store` | 總計 4 MiB 的 JSON |

382| `$.session.messages()` | 最新的 4,096 個項目 |392| `$.session.messages()` | 最新的 4,096 個項目 |

383| `$.ui.invalidate('ui.render')` 重新繪製 | 節流為每秒 10 次,在終端機中針對可見窗格、展開的橫帶與提示詞下方的提示行則為每秒 30 次。更早到來的呼叫會被合併。 |393| `$.ui.invalidate('ui.render')` 重新繪製 | 節流為每秒 10 次,在終端機中針對可見窗格、展開的橫帶與提示詞下方的提示行則為每秒 30 次。更早到來的呼叫會被合併。 |

384| `$.ui.toast` | 顯示 4 秒,除非您傳入 `{ timeoutMs }` |394| `$.ui.toast` | 顯示 4 秒,除非您傳入 `{ timeoutMs }`。在[傳統轉譯器](https://code.claude.com/docs/zh-TW/fullscreen.md#enable-fullscreen-rendering)中,mod 較新的 toast 可能會[取代其較舊的 toast](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#a-toast-doesn’t-appear),無論後者正在顯示或正等待顯示。 |

385| 未經使用者要求而開啟的窗格 | 自 144 個終端機欄寬起放置,使用者開啟過一次後則為 110 |395| 未經使用者要求而開啟的窗格 | 自 144 個終端機欄寬起放置,使用者開啟過一次後則為 110 |

396| mods API 呼叫之引數的巢狀深度 | 28,000 層。超過此深度時,呼叫會被拒絕,訊息以 `nesting deeper than 28000 levels is not supported` 結尾。需要 Claude Code v2.1.299 或更新版本。 |

397| 傳給 `next` 的已變更事件之巢狀深度,[非同步產生器 hook](#events)(例如 `turn.step` 上的 hook)除外 | 28,000 層。超過此深度時,`next` 會被拒絕,訊息以 `nesting deeper than 28000 levels is not supported` 結尾。需要 Claude Code v2.1.299 或更新版本。 |

398| hook 傳回值的巢狀深度,`ui.render`、`ui.resolve` 與非同步產生器 hook 除外 | 28,000 層。超過此深度時,hook 的結果會被拒絕,而[回報此情況的通知](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing)會包含 `nesting deeper than 28000 levels is not supported`。需要 Claude Code v2.1.299 或更新版本。 |

386| 在 hook 模組的單一檔案中彼此巢狀的作用域,例如函式、區塊與迴圈 | 2,000 |399| 在 hook 模組的單一檔案中彼此巢狀的作用域,例如函式、區塊與迴圈 | 2,000 |

387| 命令、工具、subagent 類型與窗格名稱 | 字母、數字、`_` 與 `-`,最多 64 個字元 |400| 命令、工具、subagent 類型與窗格名稱 | 字母、數字、`_` 與 `-`,最多 64 個字元 |

388| 單一 `claude plugin test` 測試 | 5 秒,除非測試設定了 `timeoutMs` |401| 單一 `claude plugin test` 測試 | 5 秒,除非測試設定了 `timeoutMs` |

Details

341 341 

342### 您的 `settings.read` hook 傳回的設定鍵未生效342### 您的 `settings.read` hook 傳回的設定鍵未生效

343 343 

344傳回的 `env` 項目不會成為環境變數。傳回的 `allow`、`ask` 和 `deny` 規則不會在工具呼叫時受到檢查。請在[設定檔](https://code.claude.com/docs/zh-TW/settings.md)中設定這些項目,或針對環境變數呼叫 [`$.env.set`](https://code.claude.com/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network)。344若您在 [Claude Code 本身的讀取](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#settings-read-hook)中傳回權限規則或 `env`,這些規則不會在工具呼叫時受到檢查,且 `env` 項目不會成為環境變數。請針對兩者使用[設定檔](https://code.claude.com/docs/zh-TW/settings.md),或針對 `env` 使用 [`$.env.set`](https://code.claude.com/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network)。

345 345 

346若是其他設定鍵,請查看[哪些 mod 會收到 `settings.read` 以及從哪個版本開始](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook),然後在[偵錯日誌](#read-the-debug-log)中搜尋 `settings.read`,並尋找下列其中一行:346若是其他設定鍵,請查看[哪些 mod 會收到 `settings.read` 以及從哪個版本開始](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook),然後在[偵錯日誌](#read-the-debug-log)中搜尋 `settings.read`,並尋找下列其中一行:

347 347 


349| :- | :- |349| :- | :- |

350| `settings.read hook skipped`,位於您的 mod 名稱之後 | 您的 hook 失敗。[修正該行回報的錯誤](#hook-skipped)。 |350| `settings.read hook skipped`,位於您的 mod 名稱之後 | 您的 hook 失敗。[修正該行回報的錯誤](#hook-skipped)。 |

351| `settings.read bypassed by cc-plugin-sec-default`,出現在於其前方列出您的 mod 名稱的行上 | [內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)略過了您的 hook。請您組織的管理員[將該 mod 安裝為組織的 mod 之一](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods)。 |351| `settings.read bypassed by cc-plugin-sec-default`,出現在於其前方列出您的 mod 名稱的行上 | [內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)略過了您的 hook。請您組織的管理員[將該 mod 安裝為組織的 mod 之一](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods)。 |

352| `settings.read: the answer for <key> is no value the key can hold` | 傳回的值不符合該設定鍵的 schema。[傳回其允許的值](#settings-read-key-refused)。 |352| `settings.read: the answer for <key> is no value the key can hold` | Claude Code 拒絕了某個 hook 針對該設定鍵傳回的值。該 hook 可能是您的,也可能是其他 mod 的。請依照[適用於您情況的步驟](#settings-read-key-refused)進行。 |

353| `settings.read: the merge never settles for <key>` | 該行列出的設定鍵會保留設定來源的值。請在設定檔中設定它們。 |353| `settings.read: the merge never settles for <key>` | 該行列出的設定鍵會保留設定來源的值。請在設定檔中設定它們。 |

354| `answered settings.read without next()`,位於某個 mod 名稱之後 | 僅在該 mod [於您的 mod 之前執行](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in)時才相關。此時您的 hook 未在該次讀取中執行。[關閉該 mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#turn-mods-on-or-off),或者若是您的組織部署了它,請其管理員關閉。 |354| `answered settings.read without next()`,位於某個 mod 名稱之後 | 若該 mod [於您的 mod 之前執行](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#the-order-mods-run-in),您的 hook 就會受到影響。此時您的 hook 未在該次讀取中執行。[關閉該 mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#turn-mods-on-or-off),或者若是您的組織部署了它,請其管理員關閉。 |

355| `settings.read: refused to the engine` | 讀取遭到拒絕,因此沒有任何 hook 的 `{ value }` 生效。[找出拒絕的來源](#settings-read-refused)。 |355| `settings.read: refused to the engine` | 由於 Claude Code 本身的讀取遭到拒絕,您的值未生效。[找出拒絕的來源](#settings-read-refused)。 |

356 356 

357若沒有任何一行能解釋該設定鍵,請檢查在您的 mod 之前執行的 mod 中,是否有[變更該設定鍵](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#settings-read-example)的 `settings.read` hook。關閉該 mod,或請您組織的管理員關閉。若沒有任何 hook 變更它,請在設定檔中設定該設定鍵。357若沒有任何一行能解釋該設定鍵,請檢查在您的 mod 之前執行的 mod 中,是否有[變更該設定鍵](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#settings-read-example)的 `settings.read` hook。關閉該 mod,或請您組織的管理員關閉。若沒有任何 hook 變更它,請在設定檔中設定該設定鍵。

358 358 

359### `the answer for <key> is no value the key can hold`359### `the answer for <key> is no value the key can hold`

360 360 

361此[偵錯日誌](#read-the-debug-log)行表示 Claude Code 拒絕了您的 [`settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook) hook 針對所列設定鍵傳回的值,且僅限該設定鍵:361此[偵錯日誌](#read-the-debug-log)行表示 Claude Code 拒絕了某個 [`settings.read`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-hook) hook 針對所列設定鍵傳回的值,且僅限該設定鍵:

362 362 

363```text theme={null}363```text theme={null}

364settings.read: the answer for <key> is no value the key can hold; the settings' own value stands364settings.read: the answer for <key> is no value the key can hold; the settings' own value stands

365```365```

366 366 

367您針對所列設定鍵傳回的值不符合該設定鍵的 schema,例如在型別或範圍上不符。請傳回該設定鍵的[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)項目所允許的值。在您的值不符合期間,該設定鍵會保留在任何 hook 回應之前從設定來源合併而來的值。該行將其稱為設定本身的值。367針對所列設定鍵傳回的值不符合該設定鍵的 schema,例如在型別或範圍上不符。

368 

369* **您的值不符合該設定鍵的 schema**:請傳回該設定鍵的[設定參考](https://code.claude.com/docs/zh-TW/settings-reference.md)項目所允許的值。

370* **您的值符合**:不符合的值來自其他 mod 的 `settings.read` hook。若要找出該 mod,請依照[逐一關閉 mod 的步驟](#settings-read-refused)進行。在每個新日誌中搜尋此行,而非 `refused to the engine`。

371 

372在該值不符合期間,該設定鍵會保留在任何 hook 回應之前從設定來源合併而來的值。該行將其稱為設定本身的值。

368 373 

369### `settings.read: refused to the engine`374### `settings.read: refused to the engine`

370 375 

371此[偵錯日誌](#read-the-debug-log)行表示 [Claude Code 本身的讀取](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#settings-read-hook)遭到拒絕,因此沒有任何 hook 的 `{ value }` 生效,包括您的。當某個 `settings.read` hook 以 [`{ deny: reason }`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-returns) 拒絕該讀取時,該行會帶有該 hook 的原因:376當 [Claude Code 本身的讀取](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#settings-read-hook)遭到拒絕時,您會在[偵錯日誌](#read-the-debug-log)中看到此行,且 Claude Code 會捨棄所有 hook 的值。當某個 `settings.read` hook 以 [`{ deny: reason }`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-returns) 拒絕該讀取時,該行會帶有該 hook 的原因:

372 377 

373```text theme={null}378```text theme={null}

374settings.read: refused to the engine (engine: $.settings.read: <reason>); the settings' own values stand379settings.read: refused to the engine (engine: $.settings.read: <reason>); the settings' own values stand

375```380```

376 381 

377在您自己的 hook 程式碼中搜尋 `<reason>` 文字:382在您的程式碼中搜尋括號內的原因:

378 383 

379* **您的程式碼中有此文字**:您的 hook 拒絕了該讀取。請讓它在 [`next.origin`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-origin) 顯示為 Claude Code 本身的讀取時傳回 `{ value }`。384* **您的程式碼中有此文字**:您的 hook 拒絕了該讀取。請讓它在 [`next.origin`](https://code.claude.com/docs/zh-TW/plugins/mods/events#settings-read-origin) 顯示為 Claude Code 本身的讀取時傳回 `{ value }`。

380* **您的程式碼中沒有此文字**:逐一[關閉](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#turn-mods-on-or-off)您的其他 mod。每關閉一個後,從您的 shell 重新執行此工作階段的命令,並加上一個指向新路徑的 `--debug-file`,然後在該檔案中搜尋 `refused to the engine`。若該行存在,請關閉下一個 mod。若不存在,則您最後關閉的 mod 拒絕了該讀取,請保持其關閉。385* **您的程式碼中沒有此原因**:逐一[關閉](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md#turn-mods-on-or-off)您的其他 mod。若某個 mod 是您的組織部署的,請其管理員將其關閉。每關閉一個後:

386 1. 從您的 shell 以 `claude --debug-file ./settings-read-2.log` 啟動工作階段,並在後面加上原本啟動時使用的旗標。每次都使用新的路徑。

387 2. 在該檔案中搜尋 `refused to the engine`。若該行存在,請關閉下一個 mod。若不存在,則您最後關閉的 mod 拒絕了該讀取,請保持其關閉。

381 388 

382當沒有其他 mod 可關閉時,請針對您的 hook 傳回的設定鍵使用[設定檔](https://code.claude.com/docs/zh-TW/settings.md)。在讀取遭到拒絕期間,其值仍然有效。389若沒有其他 mod 可關閉而該行仍然存在,請在[設定檔](https://code.claude.com/docs/zh-TW/settings.md)中設定您的 hook 傳回的設定鍵。在讀取遭到拒絕期間,其值仍然有效。

383 390 

384## 讀取偵錯日誌391## 讀取偵錯日誌

385 392 

Details

192VS Code 擴充功能與 Desktop 應用程式也有自動連線切換開關:192VS Code 擴充功能與 Desktop 應用程式也有自動連線切換開關:

193 193 

194* **VS Code 擴充功能**:[命令選單](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box) Settings 區段中的 **Enable Remote Control for all sessions**。194* **VS Code 擴充功能**:[命令選單](https://code.claude.com/docs/zh-TW/vs-code.md#use-the-prompt-box) Settings 區段中的 **Enable Remote Control for all sessions**。

195* **Desktop 應用程式**:**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)。195* **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)。

196 196 

197若要改從設定檔開啟自動連線,請在您的使用者 `~/.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。197若要改從設定檔開啟自動連線,請在您的使用者 `~/.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。

198 198 


363 * 文字輸出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap` 和 `/reload-plugins`。`/usage-credits` 會輸出計費 URL,而不是開啟瀏覽器。`/reload-plugins` 僅在工作階段於互動式終端機中執行時才能運作;沒有互動式終端機的工作階段會拒絕此命令。363 * 文字輸出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap` 和 `/reload-plugins`。`/usage-credits` 會輸出計費 URL,而不是開啟瀏覽器。`/reload-plugins` 僅在工作階段於互動式終端機中執行時才能運作;沒有互動式終端機的工作階段會拒絕此命令。

364 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:以引數傳入值,例如 `/model sonnet` 或 `/effort high`。從行動裝置和網頁使用時,`/model` 和 `/effort` 會以引數取代終端機中的選擇器或滑桿。364 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:以引數傳入值,例如 `/model sonnet` 或 `/effort high`。從行動裝置和網頁使用時,`/model` 和 `/effort` 會以引數取代終端機中的選擇器或滑桿。

365 * `/mcp`:從行動應用程式使用時,會傳回伺服器狀態的文字摘要,而不是開啟選擇器。在網頁上,單獨使用 `/mcp` 會開啟 [claude.ai 連接器](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-servers-from-claude-ai)目錄,而不是傳回摘要。當工作階段於互動式終端機中執行時,`reconnect`、`enable` 和 `disable` [子命令](https://code.claude.com/docs/zh-TW/commands.md#all-commands)在兩者上皆可使用。不指定伺服器名稱的 `/mcp reconnect` 會重試所有失敗或需要身分驗證的伺服器。若要在不使用選擇器的情況下授權 claude.ai 連接器,請參閱[從您的 shell 再次授權連接器](#authorize-a-connector-again-from-your-shell)。365 * `/mcp`:從行動應用程式使用時,會傳回伺服器狀態的文字摘要,而不是開啟選擇器。在網頁上,單獨使用 `/mcp` 會開啟 [claude.ai 連接器](https://code.claude.com/docs/zh-TW/mcp.md#use-mcp-servers-from-claude-ai)目錄,而不是傳回摘要。當工作階段於互動式終端機中執行時,`reconnect`、`enable` 和 `disable` [子命令](https://code.claude.com/docs/zh-TW/commands.md#all-commands)在兩者上皆可使用。不指定伺服器名稱的 `/mcp reconnect` 會重試所有失敗或需要身分驗證的伺服器。若要在不使用選擇器的情況下授權 claude.ai 連接器,請參閱[從您的 shell 再次授權連接器](#authorize-a-connector-again-from-your-shell)。

366 * `/config`:從行動應用程式使用時,傳入 `key=value` 以變更設定,或不帶引數執行以列出您可以設定的設定鍵。在網頁上,`/config` 會改為開啟您設定中的 Claude Code 區段。366 * `/config`:從行動應用程式使用時,傳入 `key=value` 以設定某個設定項目,或不帶引數執行以列出您可以設定的設定鍵。在網頁上,`/config` 會改為開啟 **Settings > Code** 或 **Settings > Claude Code**。

367 * 在 Team 和 Enterprise 方案中,從行動裝置或網頁執行 `/usage-credits` 不會向您的管理員傳送[用量點數請求](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)。傳送需要一個僅在互動式 CLI 中出現的確認,因此該命令會告知您改在那裡執行。367 * 在 Team 和 Enterprise 方案中,從行動裝置或網頁執行 `/usage-credits` 不會向您的管理員傳送[用量點數請求](https://code.claude.com/docs/zh-TW/costs.md#add-usage-credits-to-your-subscription)。傳送需要一個僅在互動式 CLI 中出現的確認,因此該命令會告知您改在那裡執行。

368 * `/autocompact`,自 v2.1.221 起:以引數傳入視窗大小,例如 `/autocompact 500k`。不帶引數時,它會以文字輸出目前的視窗大小,而不是開啟該命令在終端機工作階段中顯示的對話框。368 * `/autocompact`,自 v2.1.221 起:以引數傳入視窗大小,例如 `/autocompact 500k`。不帶引數時,它會以文字輸出目前的視窗大小,而不是開啟該命令在終端機工作階段中顯示的對話框。

369 * `/advisor`,自 v2.1.260 起:以引數傳入模型,例如 `/advisor opus`,或傳入 `off` 以關閉 advisor。兩種形式都僅適用於目前的工作階段,不會變更您儲存的預設值。不帶引數時,它會以文字輸出目前的 advisor,而不是開啟選擇器。369 * `/advisor`,自 v2.1.260 起:以引數傳入模型,例如 `/advisor opus`,或傳入 `off` 以關閉 advisor。兩種形式都僅適用於目前的工作階段,不會變更您儲存的預設值。不帶引數時,它會以文字輸出目前的 advisor,而不是開啟選擇器。

routines.md +9 −5

Details

77 77 

78**2. 為任務命名並撰寫提示詞**78**2. 為任務命名並撰寫提示詞**

79 79 

80為排程任務提供描述性名稱,並撰寫 Claude 每次執行的提示詞。提示詞是最重要的部分:任務會自主執行,因此提示詞必須自成一體,並明確說明要做什麼以及怎樣才算成功。在提示詞輸入框的模型選擇器中選擇模型。Claude 會在每次執行時使用該模型。80為排程任務提供描述性名稱,並撰寫 Claude 每次執行的提示詞。提示詞是最重要的部分:任務會自主執行,因此提示詞必須自成一體,並明確說明要做什麼以及怎樣才算成功。

81 81 

82觸發條件觸發時,工作階段會將已儲存的提示詞視為其被指派的工作並加以執行,而不是將其視為在對話途中傳入的不受信任內容。觸發條件僅證明該提示詞是事先由您帳戶上的授權工作階段所儲存。因此,觸發的提示詞並非即時的使用者輸入,無法作為執行期間動作的核准或同意。工作階段在執行期間擷取的內容仍維持其一般處理方式。82觸發條件觸發時,工作階段會將已儲存的提示詞視為其被指派的工作並加以執行,而不是將其視為在對話途中傳入的不受信任內容。觸發條件僅證明該提示詞是事先由您帳戶上的授權工作階段所儲存。因此,觸發的提示詞並非即時的使用者輸入,無法作為執行期間動作的核准或同意。工作階段在執行期間擷取的內容仍維持其一般處理方式。

83 83 


115 115 

116如果您的任務需要直接存取您自己的服務,或該清單以外的網域,請在執行前編輯環境的[網路存取](https://code.claude.com/docs/zh-TW/cloud-environments.md#network-access)。若要使用另一個環境,請先[建立一個](https://code.claude.com/docs/zh-TW/cloud-environments.md#configure-your-environment)。116如果您的任務需要直接存取您自己的服務,或該清單以外的網域,請在執行前編輯環境的[網路存取](https://code.claude.com/docs/zh-TW/cloud-environments.md#network-access)。若要使用另一個環境,請先[建立一個](https://code.claude.com/docs/zh-TW/cloud-environments.md#configure-your-environment)。

117 117 

118**6. 檢查連接器**118**6. 選擇模型和 effort 等級**

119 

120在提示詞輸入框的模型選擇器中選擇模型,供 Claude 在每次執行時使用。對於 Claude Code 任務,如果該模型提供 [effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level),同一個選擇器中的 **Effort** 會顯示目前的等級。若要變更,請選擇其他等級。選擇器的 **Default** 選項不提供任何等級。

121 

122**7. 檢查連接器**

119 123 

120切換到 **Advanced settings** 的 **Connectors** 標籤。預設會包含您所有已連接的 [MCP 連接器](https://code.claude.com/docs/zh-TW/mcp.md)。請移除任務不需要的連接器:Claude 在執行期間可以使用所包含的連接器,包括寫入。若要了解執行何時會先停下來詢問您,請參閱[執行期間的權限提示](#permission-prompts-during-a-run)。124切換到 **Advanced settings** 的 **Connectors** 標籤。預設會包含您所有已連接的 [MCP 連接器](https://code.claude.com/docs/zh-TW/mcp.md)。請移除任務不需要的連接器:Claude 在執行期間可以使用所包含的連接器,包括寫入。若要了解執行何時會先停下來詢問您,請參閱[執行期間的權限提示](#permission-prompts-during-a-run)。

121 125 

122**7. 建立任務**126**8. 建立任務**

123 127 

124按一下 **Create**。對話方塊會關閉,並開啟新任務的詳細資料頁面。任務會在下次其中一個觸發條件符合時執行。若要立即開始執行,請按一下詳細資料頁面上的 **Run now**。128按一下 **Create**。對話方塊會關閉,並開啟新任務的詳細資料頁面。任務會在下次其中一個觸發條件符合時執行。若要立即開始執行,請按一下詳細資料頁面上的 **Run now**。

125 129 


136在 Desktop 應用程式中,如果開啟了包含 **Local** 和 **Cloud** 的選單,請選擇 **Cloud**。標題為 **New routine** 或 **New scheduled task** 的頁面隨即開啟。請填寫其中的欄位:140在 Desktop 應用程式中,如果開啟了包含 **Local** 和 **Cloud** 的選單,請選擇 **Cloud**。標題為 **New routine** 或 **New scheduled task** 的頁面隨即開啟。請填寫其中的欄位:

137 141 

138* **Name**:輸入名稱。142* **Name**:輸入名稱。

139* **Instructions**:輸入提示詞。在同一個方塊中,選擇模型、儲存庫和環境。若要了解各項所控制的內容,請參閱[從網頁建立](#create-from-the-web)下的步驟。143* **Instructions**:輸入提示詞。在同一個方塊中,選擇模型、effort 等級(如果模型有提供)、儲存庫和環境。若要了解各項所控制的內容,請參閱[從網頁建立](#create-from-the-web)下的步驟。

140* **Select a trigger**:選擇 **Schedule**、**GitHub event** 或 **API**。若為排程,請參閱[新增排程觸發條件](#add-a-schedule-trigger)。若為 [GitHub 事件](#add-a-github-trigger),請選擇儲存庫。若為 [API 觸發條件](#add-an-api-trigger),請從按一下 **Create** 後開啟的 **API token** 對話方塊中複製 token,因為它只會顯示一次。若要組合多個觸發條件,請按一下 **Add another trigger**。144* **Select a trigger**:選擇 **Schedule**、**GitHub event** 或 **API**。若為排程,請參閱[新增排程觸發條件](#add-a-schedule-trigger)。若為 [GitHub 事件](#add-a-github-trigger),請選擇儲存庫。若為 [API 觸發條件](#add-an-api-trigger),請從按一下 **Create** 後開啟的 **API token** 對話方塊中複製 token,因為它只會顯示一次。若要組合多個觸發條件,請按一下 **Add another trigger**。

141* **Connectors**:預設會包含您所有已連接的連接器,因此請移除任務不需要的連接器。145* **Connectors**:預設會包含您所有已連接的連接器,因此請移除任務不需要的連接器。

142 146 


153* **API 觸發條件**:在 [claude.ai/code/routines](https://claude.ai/code/routines) 網頁上編輯任務157* **API 觸發條件**:在 [claude.ai/code/routines](https://claude.ai/code/routines) 網頁上編輯任務

154* **[GitHub 觸發條件](#add-a-github-trigger)**:在網頁上編輯任務,或在 CLI 中請 Claude 處理。從 CLI 新增需要 Claude Code v2.1.225 或更新版本158* **[GitHub 觸發條件](#add-a-github-trigger)**:在網頁上編輯任務,或在 CLI 中請 Claude 處理。從 CLI 新增需要 Claude Code v2.1.225 或更新版本

155 159 

156沒有排程觸發條件的排程任務(例如僅由 API 呼叫或 GitHub 事件啟動的任務)沒有下次執行時間。當 Claude 儲存或更新此類任務時,CLI 不會顯示任何時間。在 v2.1.211 之前,CLI 會為這些任務回報西元 1 年的下次執行時間。160沒有排程觸發條件的排程任務(例如僅由 API 呼叫或 GitHub 事件啟動的任務)沒有下次執行時間。當 Claude 儲存或更新此類任務時,CLI 不會顯示任何時間。

157 161 

158## 設定觸發條件162## 設定觸發條件

159 163 

sandboxing.md +2 −1

Details

320* **呼叫中的每個命令都必須相符**:`npm ci && docker compose build` 會保持在沙箱中,除非另有項目涵蓋 `npm ci`320* **呼叫中的每個命令都必須相符**:`npm ci && docker compose build` 會保持在沙箱中,除非另有項目涵蓋 `npm ci`

321* **Claude Code 比對的是呼叫的文字**:在內部呼叫 `docker` 的指令碼或 `make` 目標不會相符,`/usr/local/bin/docker` 也不會相符321* **Claude Code 比對的是呼叫的文字**:在內部呼叫 `docker` 的指令碼或 `make` 目標不會相符,`/usr/local/bin/docker` 也不會相符

322* **某些呼叫會保持在沙箱中**:重新導向至檔案、`cd`,或如 `$(...)` 的命令替換,會讓整個呼叫保持在沙箱中。[參考項目](https://code.claude.com/docs/zh-TW/settings-reference.md#sandbox-excludedcommands)列出了更多會保持在沙箱中的呼叫322* **某些呼叫會保持在沙箱中**:重新導向至檔案、`cd`,或如 `$(...)` 的命令替換,會讓整個呼叫保持在沙箱中。[參考項目](https://code.claude.com/docs/zh-TW/settings-reference.md#sandbox-excludedcommands)列出了更多會保持在沙箱中的呼叫

323* **`git clone` 需要使用相對路徑**:您的項目不涵蓋指定絕對路徑、以 `~` 開頭的路徑,或含有 `..` 區段之路徑的 clone。如果 clone 可以放在您的工作目錄內,請要求 Claude 使用不含 `..` 區段的相對路徑,例如 `vendor/lib`

323* **項目的儲存位置可能有影響**:當沙箱為[管理員要求](#repository-settings-under-an-admin-required-sandbox)時,Claude Code 會忽略 `.claude/settings.json` 和 `.claude/settings.local.json` 中的項目324* **項目的儲存位置可能有影響**:當沙箱為[管理員要求](#repository-settings-under-an-admin-required-sandbox)時,Claude Code 會忽略 `.claude/settings.json` 和 `.claude/settings.local.json` 中的項目

324 325 

325被排除的命令會經過一般的權限流程:326被排除的命令會經過一般的權限流程:


354 355 

355沙箱有兩個獨立的層:[檔案系統隔離](#filesystem-isolation)控制沙箱化命令可以讀取和寫入哪些路徑,[網路隔離](#network-isolation)控制它們可以連線到哪些網域。關閉檔案系統層後,沙箱化命令會取得對主機檔案系統不受限制的讀取和寫入存取權,而其網路輸出流量仍限制在您允許的網域內。當您使用沙箱是為了控制命令連線至何處,而非它們寫入什麼內容時,請關閉此層。356沙箱有兩個獨立的層:[檔案系統隔離](#filesystem-isolation)控制沙箱化命令可以讀取和寫入哪些路徑,[網路隔離](#network-isolation)控制它們可以連線到哪些網域。關閉檔案系統層後,沙箱化命令會取得對主機檔案系統不受限制的讀取和寫入存取權,而其網路輸出流量仍限制在您允許的網域內。當您使用沙箱是為了控制命令連線至何處,而非它們寫入什麼內容時,請關閉此層。

356 357 

357`sandbox.filesystem.disabled` 預設為 `false`。需要 Claude Code v2.1.216 或更新版本。358`sandbox.filesystem.disabled` 預設為 `false`。

358 359 

359> [!WARNING]360> [!WARNING]

360>361>

Details

381 381 

382| 旗標(含範例值) | 傳給 | 作用 |382| 旗標(含範例值) | 傳給 | 作用 |

383| :- | :- | :- |383| :- | :- | :- |

384| `--release-idle-session-min 30` | 您的 hook 啟動的每個 runner | runner 會在閒置達該分鐘數後釋放其工作階段,然後以 0 結束。該工作階段會在其使用者傳送下一則訊息時繼續,但[尚未推送的工作將會遺失](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#additional-limitations)。 |384| `--release-idle-session-min 30` | 您的 hook 啟動的每個 runner | runner 會在閒置達該分鐘數後釋放其工作階段,然後以 0 結束。該工作階段會在其使用者傳送下一則訊息時繼續,但[尚未推送的工作將會遺失](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#additional-limitations)。對於工作階段留下仍在執行的程序,請[保留該工作階段](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#keep-an-idle-session-while-its-processes-run)。 |

385| `--kill-session-after-min 480` | 您的 hook 啟動的每個 runner | 將每個工作階段限制在該分鐘數內,作為[不計為閒置之工作階段](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle)的防線,因此請將其設定為高於您預期最長的工作階段 |385| `--kill-session-after-min 480` | 您的 hook 啟動的每個 runner | 將每個工作階段限制在該分鐘數內,作為[不計為閒置之工作階段](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle)的防線,因此請將其設定為高於您預期最長的工作階段 |

386| `--exit-if-unused-min 60` | 待命 runner,即您的 hook 為預熱請求所啟動的 runner | 從未接手工作階段的待命 runner 會在該分鐘數後結束。若您設定了 [`--min-idle`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#orchestrator-cli-flags),除非該待命 runner 屬於多餘,否則您會得到一個替代者,因此請使用遠高於啟動時間的值。 |386| `--exit-if-unused-min 60` | 待命 runner,即您的 hook 為預熱請求所啟動的 runner | 從未接手工作階段的待命 runner 會在該分鐘數後結束。若您設定了 [`--min-idle`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#orchestrator-cli-flags),除非該待命 runner 屬於多餘,否則您會得到一個替代者,因此請使用遠高於啟動時間的值。 |

387 387 

Details

68| `code.claude.com` 和 `claude.com` | 443 | 內置 claude-code-guide 代理的文件查詢和工作階段期間預先批准的 WebFetch 請求。阻止這些主機只會影響文件查詢。 |68| `code.claude.com` 和 `claude.com` | 443 | 內置 claude-code-guide 代理的文件查詢和工作階段期間預先批准的 WebFetch 請求。阻止這些主機只會影響文件查詢。 |

69| `*.frame.claudeusercontent.com` | 443 | 僅當[工件工具](https://code.claude.com/docs/zh-TW/artifacts.md#availability)對您組織中的工作階段可用時;預設值因方案而異,根據那裡的可用性表。在執行器上設定 `CLAUDE_CODE_DISABLE_ARTIFACT=1` 以保持工具禁用,無論組織設定如何。 |69| `*.frame.claudeusercontent.com` | 443 | 僅當[工件工具](https://code.claude.com/docs/zh-TW/artifacts.md#availability)對您組織中的工作階段可用時;預設值因方案而異,根據那裡的可用性表。在執行器上設定 `CLAUDE_CODE_DISABLE_ARTIFACT=1` 以保持工具禁用,無論組織設定如何。 |

70| `registry.npmjs.org` | 443 | 當工作階段安裝外掛程式時,用於提取 npm 源外掛程式套件和安裝外掛程式的 Node.js 依賴項,或當 `npx` 啟動的 MCP 伺服器執行時 |70| `registry.npmjs.org` | 443 | 當工作階段安裝外掛程式時,用於提取 npm 源外掛程式套件和安裝外掛程式的 Node.js 依賴項,或當 `npx` 啟動的 MCP 伺服器執行時 |

71| 您的建置所使用之套件登錄的內部鏡像,或套件登錄本身 | 443,或您鏡像的連接埠 | 當工作階段安裝相依套件以建置或測試您的儲存庫時 |

71| `http-intake.logs.us5.datadoghq.com` | 443 | Anthropic 操作指標。僅當設定 `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1` 時;在自託管環境中預設關閉。 |72| `http-intake.logs.us5.datadoghq.com` | 443 | Anthropic 操作指標。僅當設定 `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1` 時;在自託管環境中預設關閉。 |

72| `browser-intake-us5-datadoghq.com` | 443 | Anthropic 錯誤報告上傳,僅在為工作階段帳戶啟用[錯誤報告](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services)時發送。由 `DISABLE_ERROR_REPORTING=1` 或 `DISABLE_TELEMETRY=1` 抑制。 |73| `browser-intake-us5-datadoghq.com` | 443 | Anthropic 錯誤報告上傳,僅在為工作階段帳戶啟用[錯誤報告](https://code.claude.com/docs/zh-TW/data-usage.md#telemetry-services)時發送。由 `DISABLE_ERROR_REPORTING=1` 或 `DISABLE_TELEMETRY=1` 抑制。 |

73| 您的雲端供應商用於模型請求、模型查詢和更新憑證的端點,例如 `bedrock-runtime.us-east-1.amazonaws.com` 或 `aiplatform.googleapis.com` | 443 | 僅當執行器[將模型請求傳送至 Amazon Bedrock 或 Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#send-model-requests-to-bedrock-or-agent-platform) 時 |74| 您的雲端供應商用於模型請求、模型查詢和更新憑證的端點,例如 `bedrock-runtime.us-east-1.amazonaws.com` 或 `aiplatform.googleapis.com` | 443 | 僅當執行器[將模型請求傳送至 Amazon Bedrock 或 Google Cloud 的 Agent Platform](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#send-model-requests-to-bedrock-or-agent-platform) 時 |


631 632 

632在信號後的前兩個階段中,執行器釋放工作階段,釋放的工作階段在其使用者發送下一條訊息時在新執行器上恢復。從第一個信號開始計數,執行器通過三個階段移動:633在信號後的前兩個階段中,執行器釋放工作階段,釋放的工作階段在其使用者發送下一條訊息時在新執行器上恢復。從第一個信號開始計數,執行器通過三個階段移動:

633 634 

634* **在前 `n` 分鐘內**:執行器正常服務其工作階段並繼續強制執行 `--startup-timeout-min` 和 `--kill-session-after-min`。如果您也設定 [`--release-idle-session-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),執行器釋放任何使用者已閒置該長時間的工作階段;沒有它,閒置工作階段保留在執行器上。635* **在前 `n` 分鐘內**:執行器正常服務其工作階段並繼續強制執行 `--startup-timeout-min` 和 `--kill-session-after-min`。如果您也設定 [`--release-idle-session-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),執行器會釋放任何使用者已閒置該長時間的工作階段,除非您[保留該工作階段](#keep-an-idle-session-while-its-processes-run)。若未設定此旗標,閒置工作階段會保留在執行器上。

635* **當 `n` 分鐘用完時**:執行器釋放它仍然持有的每個工作階段,閒置或不閒置。執行器等待中途轉向的轉向結束,並為該轉向的背景任務再等待最多 60 秒,然後釋放該工作階段。636* **當 `n` 分鐘用完時**:執行器釋放它仍然持有的每個工作階段,閒置或不閒置。執行器等待中途轉向的轉向結束,並為該轉向的背景任務再等待最多 60 秒,然後釋放該工作階段。

636* **當發佈後寬限期用完時**:執行器清空它仍然持有的任何工作階段,控制平面立即將每個清空的工作階段重新排隊到另一個執行器。發佈後寬限期在 `n` 分鐘用完時開始,預設值為 75 秒。如果您將 `--drain-wait-sec` 設定為 60 秒以上,發佈後寬限期改為 `--drain-wait-sec` 加 15 秒。637* **當發佈後寬限期用完時**:執行器清空它仍然持有的任何工作階段,控制平面立即將每個清空的工作階段重新排隊到另一個執行器。發佈後寬限期在 `n` 分鐘用完時開始,預設值為 75 秒。如果您將 `--drain-wait-sec` 設定為 60 秒以上,發佈後寬限期改為 `--drain-wait-sec` 加 15 秒。

637 638 


716 717 

717### 在固定群上釋放閒置工作階段718### 在固定群上釋放閒置工作階段

718 719 

719如果在每個執行器都在線的情況下,固定群上的工作階段仍持續排隊,原因可能是閒置工作階段。預設情況下,工作階段在其回合結束後仍會保留其槽位,而其執行器會持續鎖定於該工作階段的[所有者](https://code.claude.com/docs/zh-TW/self-hosted-environments#key-concepts)。如果您團隊的[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)在每次執行時都會啟動新的工作階段,其閒置工作階段可能會佔滿所有槽位。720如果在每個執行器都在線的情況下,固定群上的工作階段仍持續排隊,原因可能是閒置工作階段。預設情況下,工作階段在其回合結束後仍會保留其槽位,而其執行器會持續鎖定於該工作階段的[所有者](https://code.claude.com/docs/zh-TW/self-hosted-environments#key-concepts)。其他所有者的工作階段無法使用該執行器的空閒槽位。如果您團隊的[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)在每次執行時都會啟動新的工作階段,其閒置工作階段可能會佔滿所有槽位。

720 721 

721若要檢查,請讀取每個執行器的 [Prometheus 指標](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference.md#prometheus-metrics)中的 `claude_code_self_hosted_runner_session_idle_seconds`。執行器持有的每個工作階段都有其各自的序列:工作階段忙碌時為 `0`,否則為其進入閒置狀態以來的秒數。選擇您允許的閒置時間:要長於人們在任務進行中的暫停時間,並且短到足以讓每次執行在排程任務的下一次執行開始之前被釋放。將這些序列與該時間進行比較。722若要檢查,請讀取每個執行器的 [Prometheus 指標](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference.md#prometheus-metrics)中的 `claude_code_self_hosted_runner_session_idle_seconds`。執行器持有的每個工作階段都有其各自的序列:工作階段忙碌時為 `0`,否則為其進入閒置狀態以來的秒數。選擇您允許的閒置時間:要長於人們在任務進行中的暫停時間,並且短到足以讓每次執行在排程任務的下一次執行開始之前被釋放。將這些序列與該時間進行比較。

722 723 


725* **沒有序列的執行器**:沒有任何工作階段持有它。請參閱[疑難排解](#troubleshooting)下的 **Sessions stay queued**。726* **沒有序列的執行器**:沒有任何工作階段持有它。請參閱[疑難排解](#troubleshooting)下的 **Sessions stay queued**。

726* **指標沒有回應的執行器**:其程序可能已經結束。請參閱[當執行器結束時](#when-the-runner-exits)下的 **An environment that looks healthy**。727* **指標沒有回應的執行器**:其程序可能已經結束。請參閱[當執行器結束時](#when-the-runner-exits)下的 **An environment that looks healthy**。

727 728 

728若要釋放閒置工作階段,請使用 [`--release-idle-session-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 並搭配以分鐘為單位的該時間來啟動每個執行器,例如 `--release-idle-session-min 30`。執行器隨後會釋放任何閒置達該時間的工作階段,無論是由排程任務還是由人員啟動的。729若要釋放閒置工作階段,請使用 [`--release-idle-session-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 並搭配以分鐘為單位的該時間來啟動每個執行器,例如 `--release-idle-session-min 30`。執行器隨後會釋放任何閒置達該時間的工作階段,無論是由排程任務還是由人員啟動的,除非您[為其留下仍在執行的程序而保留它](#keep-an-idle-session-while-its-processes-run)。

729 730 

730* **未推送的工作**:已釋放的工作階段會在其下一則訊息時恢復,但不包含其尚未推送的工作。若要保留其提交,請參閱[恢復的工作階段會遺失未推送的工作](#additional-limitations)。731* **未推送的工作**:已釋放的工作階段會在其下一則訊息時恢復,但不包含其尚未推送的工作。若要保留其提交,請參閱[恢復的工作階段會遺失未推送的工作](#additional-limitations)。

731* **執行器結束**:釋放其最後一個工作階段的執行器會開始[正常結束](#when-the-runner-exits)。請讓您的監督程式在全新的檔案系統上重新啟動它,如[強化您的部署](#harden-your-deployment)所述。732* **執行器結束**:釋放其最後一個工作階段的執行器會開始[正常結束](#when-the-runner-exits)。請讓您的監督程式在全新的檔案系統上重新啟動它,如[強化您的部署](#harden-your-deployment)所述。

732* **從不進入閒置狀態的工作階段**:也請設定 [`--kill-session-after-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),因為[某些工作階段不被視為閒置](#some-sessions-don’t-count-as-idle)733* **從不進入閒置狀態的工作階段**:也請設定 [`--kill-session-after-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),因為[某些工作階段不被視為閒置](#some-sessions-don’t-count-as-idle)

733 734 

735### 在程序執行期間保留閒置工作階段

736 

737若要保留閒置工作階段,直到其在您主機上留下的程序(例如 `nohup` 工作)完成為止,請使用 [`--hold-idle-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 啟動執行器,並持續從主機 touch 該檔案。需要 Claude Code v2.1.311 或更新版本。

738 

739這些步驟假設主機上的執行器以非 root 身分執行。如果您的執行器以 `root` 身分執行,其工作階段可以自行 touch 該檔案,因此請先以專用使用者身分執行它。

740 

741**1. 為檔案選擇路徑**

742 

743選擇一個本機一般檔案,例如 `/var/lib/claude-hold/hold-idle`,並將其放在工作階段無法寫入的目錄中(包括上層目錄),使工作階段無法寫入該檔案。執行器及其工作階段共用同一個作業系統使用者,因此請先建立該目錄,由另一個使用者(例如 `root`)擁有,模式為 `755`。

744 

745**2. 啟動執行器**

746 

747從您的 shell 使用 `--hold-idle-file`、`--release-idle-session-min` 和 [`--max-hold-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 啟動執行器;`--max-hold-min` 是保留的上限,從工作階段進入閒置狀態時開始計算。若未設定,上限為一天。請將其設定為高於 `--release-idle-session-min`,否則不會保留任何工作階段。此範例會在 30 分鐘後釋放閒置工作階段,並在被保留的工作階段進入閒置狀態後最多 4 小時釋放它:

748 

749```bash theme={null}

750claude self-hosted-runner \

751 --environment-secret-file /etc/claude/environment-secret \

752 --release-idle-session-min 30 \

753 --hold-idle-file /var/lib/claude-hold/hold-idle \

754 --max-hold-min 240

755```

756 

757**3. 在程序執行期間 touch 該檔案**

758 

759在程序執行期間,以該目錄擁有者的身分從主機 `touch` 該檔案,頻率須高於每三分鐘一次。第一次 `touch` 會建立該檔案。例如,將以下這行加入 `root` 的 crontab:

760 

761```text theme={null}

762* * * * * pgrep -x nightly-build > /dev/null && touch /var/lib/claude-hold/hold-idle

763```

764 

765這行每分鐘執行一次,並在任何名為 `nightly-build` 的程序執行期間 touch 該檔案,因此啟動此類程序的工作階段會持續被保留,直到達到上限為止。請將 `pgrep` 檢查替換為您主機用來找出工作階段所留下執行中程序的任何方式。

766 

767當這些程序結束時,檢查必須停止比對成功,否則該執行器上的每個閒置工作階段都會被保留直到達到上限。

768 

769**4. 確認保留**

770 

771在程序執行期間,檢查該檔案的修改時間是否一直保持在三分鐘以內。當工作階段的閒置時間用盡時,請在執行器的日誌中尋找 `idle release held`。如果沒有出現此行,請讀取執行器在啟動時記錄的 `watchdog config` 行中的 `leftover-hold=`,它會顯示檔案和上限,或說明為何沒有保留任何工作階段。

772 

773在最後一次 `touch` 的三分鐘後,保留即會結束。再過大約一分鐘內,日誌會顯示 `idle release no longer held`,執行器隨即釋放該工作階段。

774 

775即使檔案持續變更,保留仍可能結束,例如以下情況:

776 

777* **超過上限**:`--max-hold-min` 用盡。若要保留更久,請提高此值

778* **強制釋放**:您設定了 [`--retire-at`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags)、[`--defer-shutdown-max-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 或 [`--kill-session-after-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),且該限制已到。若要保留更久,請設定更晚的限制

779 

734## 已知問題和限制780## 已知問題和限制

735 781 

736以下是此版本中的限制,其中存在解決方法。782以下是此版本中的限制,其中存在解決方法。


828* **Claude Tag 有時不會在 Slack 中張貼其回覆**:回覆提醒是[控制平面所提供的 hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#how-each-session’s-config-is-assembled)。請以 `claude --version` 確認 runner 為 Claude Code v2.1.229 或更新版本,因為較舊的 runner 會忽略所提供的 hook;確認 `python3 --version` 能在 runner 映像中成功執行,因為這些 hook 會執行 `python3`;並確認沒有任何設定檔關閉 hook,無論是 `managed-settings.json`、runner 使用者的 `~/.claude/settings.json`,或儲存庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `disableAllHooks`,或是受管設定中的 `allowManagedHooksOnly` 或涵蓋 hook 的 [`strictPluginOnlyCustomization`](https://code.claude.com/docs/zh-TW/settings-reference#strictpluginonlycustomization)。874* **Claude Tag 有時不會在 Slack 中張貼其回覆**:回覆提醒是[控制平面所提供的 hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#how-each-session’s-config-is-assembled)。請以 `claude --version` 確認 runner 為 Claude Code v2.1.229 或更新版本,因為較舊的 runner 會忽略所提供的 hook;確認 `python3 --version` 能在 runner 映像中成功執行,因為這些 hook 會執行 `python3`;並確認沒有任何設定檔關閉 hook,無論是 `managed-settings.json`、runner 使用者的 `~/.claude/settings.json`,或儲存庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `disableAllHooks`,或是受管設定中的 `allowManagedHooksOnly` 或涵蓋 hook 的 [`strictPluginOnlyCustomization`](https://code.claude.com/docs/zh-TW/settings-reference#strictpluginonlycustomization)。

829* **工作階段啟動時缺少其中一個儲存庫**:在沒有 [`checkout` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#checkout) 的 runner 上,git 主機可能會拒絕 runner 對工作階段只讀取之儲存庫的存取檢查。Runner 接著會略過該儲存庫,記錄一行指名該拒絕的 `[runner:warn] could not access context source`,並以其餘儲存庫啟動工作階段。875* **工作階段啟動時缺少其中一個儲存庫**:在沒有 [`checkout` hook](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#checkout) 的 runner 上,git 主機可能會拒絕 runner 對工作階段只讀取之儲存庫的存取檢查。Runner 接著會略過該儲存庫,記錄一行指名該拒絕的 `[runner:warn] could not access context source`,並以其餘儲存庫啟動工作階段。

830 876 

831 Runner 只會略過明確的拒絕:主機回應找不到儲存庫、git 找不到該主機的憑證,或身分驗證失敗。網路故障、逾時或 HTTP `403` 仍會使工作階段啟動失敗,對工作階段推送結果之儲存庫的拒絕也是如此。對於略過會使其完全沒有儲存庫的工作階段,runner 仍會使其失敗。使用 [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) 時,runner 只會略過 git 代理伺服器本身拒絕的儲存庫。877 使用其自身的 git 憑證時,若主機回應找不到儲存庫、git 找不到該主機的憑證,或身分驗證失敗,runner 可以略過該儲存庫。

878 

879 使用 [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) 時,當 git 代理伺服器以 `access denied by the git proxy` 拒絕某個儲存庫,runner 會略過它。此時日誌行會顯示 `blocked by the git proxy`。如需要檢查的原因,請參閱[當工作階段無法在使用 git 代理伺服器的 runner 上啟動時](#when-anthropic-doesnt-serve-a-session)中的 `remote: access denied by the git proxy` 情況。

880 

881 網路故障、逾時或任何其他 HTTP `403` 仍會使工作階段啟動失敗,對工作階段推送結果之儲存庫的拒絕也是如此。對於略過會使其完全沒有儲存庫的工作階段,runner 仍會使其失敗。

832 882 

833 每次工作階段在 runner 上啟動時,存取檢查都會再次執行,因此一旦 runner 的 git 身分擁有讀取權限,下次啟動時就會 clone 該儲存庫。在 v2.1.274 之前,這些拒絕都會使工作階段啟動失敗。883 每次工作階段在 runner 上啟動時,存取檢查都會再次執行,因此一旦 runner 的 git 身分擁有讀取權限,下次啟動時就會 clone 該儲存庫。在 v2.1.274 之前,這些拒絕都會使工作階段啟動失敗。

884* **日誌顯示 `could not read context source`**:此行與 `could not access context source` 不同,表示 git 主機持續回應 HTTP `429`,或您安裝為 `git` 的包裝程式持續以 `75` 結束。Runner 已略過該儲存庫。若要重試,請啟動新的工作階段。每次此工作階段在 runner 上啟動時,runner 也會再次嘗試該儲存庫。

885 

886 在沒有 `checkout` hook 的情況下,runner 可以略過工作階段只讀取的儲存庫,除非該儲存庫是工作階段的儲存庫中的第一個。在 v2.1.311 之前,工作階段啟動會失敗。

834* **工作階段啟動失敗並顯示 `This runner couldn't read`**:runner 以其 [git 憑證](#configure-git)向 git 主機請求儲存庫,並收到找不到的回應。該儲存庫不存在,或這些憑證無法存取該儲存庫。887* **工作階段啟動失敗並顯示 `This runner couldn't read`**:runner 以其 [git 憑證](#configure-git)向 git 主機請求儲存庫,並收到找不到的回應。該儲存庫不存在,或這些憑證無法存取該儲存庫。

835 * **如果您管理該 runner**:為其 git 憑證授予該儲存庫的讀取權限,然後啟動新的工作階段。888 * **如果您管理該 runner**:為其 git 憑證授予該儲存庫的讀取權限,然後啟動新的工作階段。

836 * **如果您是啟動該工作階段的人**:如果儲存庫不存在,請以正確的儲存庫啟動新的工作階段。如果 runner 無法存取該儲存庫,請要求 runner 的管理員授予存取權,然後啟動新的工作階段。889 * **如果您是啟動該工作階段的人**:如果儲存庫不存在,請以正確的儲存庫啟動新的工作階段。如果 runner 無法存取該儲存庫,請要求 runner 的管理員授予存取權,然後啟動新的工作階段。

Details

37| `--git-host-rewrite <from>=<to>` | 無 | 未設定 | 在複製之前將 `https://<from>/...` 來源 URL 重寫為 `https://<to>/...`,用於分割視界 DNS。可重複;僅旗標。 |37| `--git-host-rewrite <from>=<to>` | 無 | 未設定 | 在複製之前將 `https://<from>/...` 來源 URL 重寫為 `https://<to>/...`,用於分割視界 DNS。可重複;僅旗標。 |

38| `--git-ssh-rewrite <host>` | 無 | 未設定 | 在複製之前將 `https://<host>/...` 來源 URL 重寫為 `git@<host>:...`,用於僅限 SSH 的 git 主機。可重複;僅旗標。 |38| `--git-ssh-rewrite <host>` | 無 | 未設定 | 在複製之前將 `https://<host>/...` 來源 URL 重寫為 `git@<host>:...`,用於僅限 SSH 的 git 主機。可重複;僅旗標。 |

39| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | `/healthz` 和 `/metrics` 接聽器的連接埠。設定 `0` 以停用。 |39| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | `/healthz` 和 `/metrics` 接聽器的連接埠。設定 `0` 以停用。 |

40| `--hold-idle-file <path>` | `SELF_HOSTED_RUNNER_HOLD_IDLE_FILE` | 未設定 | 您的主機持續變更的檔案,用以在執行器上保留閒置的工作階段。請參閱[在其程序執行期間保留閒置的工作階段](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#keep-an-idle-session-while-its-processes-run)。需要 Claude Code v2.1.311 或更新版本。 |

40| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | 未設定 | 生命週期掛鉤指令碼的目錄。請參閱[生命週期掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#lifecycle-hooks)。 |41| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | 未設定 | 生命週期掛鉤指令碼的目錄。請參閱[生命週期掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#lifecycle-hooks)。 |

41| `--host-config-snapshot <mode>` | `SELF_HOSTED_RUNNER_HOST_CONFIG_SNAPSHOT` | `disk` | 執行器保持[主機設定目錄](#environment-variable-only-settings)啟動快照的位置,它從中播種每個工作階段。`disk` 將快照複製到 `--base-dir` 下執行器擁有的目錄中,並在每個工作階段啟動時,驗證每個檔案對照記憶體內摘要。如果副本中的檔案已被修改,工作階段失敗,執行器拒絕工作階段,直到您重新啟動它。`memory` 在堆上保持整個快照,上限為 64 MiB;超過上限,工作階段啟動時沒有主機設定並顯示說明這一點的通知。當執行器無法寫入磁碟快照時,它記錄失敗並為該執行使用 `memory`。需要 Claude Code v2.1.271 或更新版本。 |42| `--host-config-snapshot <mode>` | `SELF_HOSTED_RUNNER_HOST_CONFIG_SNAPSHOT` | `disk` | 執行器保持[主機設定目錄](#environment-variable-only-settings)啟動快照的位置,它從中播種每個工作階段。`disk` 將快照複製到 `--base-dir` 下執行器擁有的目錄中,並在每個工作階段啟動時,驗證每個檔案對照記憶體內摘要。如果副本中的檔案已被修改,工作階段失敗,執行器拒絕工作階段,直到您重新啟動它。`memory` 在堆上保持整個快照,上限為 64 MiB;超過上限,工作階段啟動時沒有主機設定並顯示說明這一點的通知。當執行器無法寫入磁碟快照時,它記錄失敗並為該執行使用 `memory`。需要 Claude Code v2.1.271 或更新版本。 |

42| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | 將工作階段限制為 N 分鐘牆上時間,作為卡住工作階段的安全限制。在 v2.1.260 或更新版本上,執行器釋放達到限制的工作階段,以便它可以在其使用者的下一條訊息上繼續,並且只有在它在 [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) 寬限期結束時仍在執行器上時才終止它。在 v2.1.260 之前,執行器在限制時終止工作階段。請參閱[某些工作階段不計為閒置](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don%E2%80%99t-count-as-idle)以了解詳細資訊以及如何選擇值。`0` 停用。 |43| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | 將工作階段限制為 N 分鐘牆上時間,作為卡住工作階段的安全限制。在 v2.1.260 或更新版本上,執行器釋放達到限制的工作階段,以便它可以在其使用者的下一條訊息上繼續,並且只有在它在 [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings) 寬限期結束時仍在執行器上時才終止它。在 v2.1.260 之前,執行器在限制時終止工作階段。請參閱[某些工作階段不計為閒置](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don%E2%80%99t-count-as-idle)以了解詳細資訊以及如何選擇值。`0` 停用。 |

43| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | 未設定 | 在啟動時預先將執行器鎖定到特定帳戶,而不是在第一個工作階段時鎖定。接受環境組織中的電子郵件地址或 `user_...` ID。預先鎖定的執行器永遠不會拾取 Claude Tag 頻道工作階段,這些工作階段沒有帳戶。 |44| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | 未設定 | 在啟動時預先將執行器鎖定到特定帳戶,而不是在第一個工作階段時鎖定。接受環境組織中的電子郵件地址或 `user_...` ID。預先鎖定的執行器永遠不會拾取 Claude Tag 頻道工作階段,這些工作階段沒有帳戶。 |

44| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | 未設定 | 除了 stdout 和 stderr 外,還將執行器日誌鏡像到檔案,使用 `0600` 權限建立。`self-hosted-runner doctor` 在本地尾部日誌需要此項。 |45| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | 未設定 | 除了 stdout 和 stderr 外,還將執行器日誌鏡像到檔案,使用 `0600` 權限建立。`self-hosted-runner doctor` 在本地尾部日誌需要此項。 |

45| `--log-level <level>` | 無 | `info` | `info` 或 `debug` |46| `--log-level <level>` | 無 | `info` | `info` 或 `debug` |

47| `--max-hold-min <n>` | `SELF_HOSTED_RUNNER_MAX_HOLD_MS` | `1440` | 搭配 `--hold-idle-file` 使用時,在保留的工作階段進入閒置 N 分鐘後,仍將其釋放。等於或低於 `--release-idle-session-min` 的值不會保留任何工作階段。`0` 會關閉保留。需要 Claude Code v2.1.311 或更新版本。 |

46| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)在每個工作階段結束時的預算,包括執行器關閉 |48| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)在每個工作階段結束時的預算,包括執行器關閉 |

47| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | 未設定 | 執行器為每個到您的出口代理的連線執行的 Shell 命令,使用其修剪的 stdout 作為 `Proxy-Authorization` 標頭值。需要 `HTTPS_PROXY` 或 `HTTP_PROXY`,不能與 `--proxy-authorization-file` 結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |49| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | 未設定 | 執行器為每個到您的出口代理的連線執行的 Shell 命令,使用其修剪的 stdout 作為 `Proxy-Authorization` 標頭值。需要 `HTTPS_PROXY` 或 `HTTP_PROXY`,不能與 `--proxy-authorization-file` 結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |

48| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | 未設定 | 執行器為每個到您的出口代理的連線讀取的檔案,使用其修剪的內容作為 `Proxy-Authorization` 標頭值。對於另一個程序就地輪換的權杖,使用此旗標。與 `--proxy-authorization-command` 具有相同的要求,不能與其結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | 未設定 | 執行器為每個到您的出口代理的連線讀取的檔案,使用其修剪的內容作為 `Proxy-Authorization` 標頭值。對於另一個程序就地輪換的權杖,使用此旗標。與 `--proxy-authorization-command` 具有相同的要求,不能與其結合。請參閱[驗證到出口代理](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy)。需要 Claude Code v2.1.238 或更新版本。 |

49| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | 關閉 | 在執行器啟動的工作階段結束(例如排空或閒置釋放)時,在刪除工作區之前將追蹤的結果分支推送到 `origin`,以便進行中的提交在重新啟動後存活。盡力而為;將關閉預算增加 30 秒,並需要 git 2.29 或更新版本以從推送的分支繼續。在啟用之前限制推送存取到 `claude/*` 參考;請參閱[已繼續的工作階段會遺失未推送的工作](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#additional-limitations)。通過 `checkout` 生命週期掛鉤簽出的存放庫不會被推送;改為從 [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)快照這些。 |51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | 關閉 | 在執行器啟動的工作階段結束(例如排空或閒置釋放)時,在刪除工作區之前將追蹤的結果分支推送到 `origin`,以便進行中的提交在重新啟動後存活。盡力而為;將關閉預算增加 30 秒,並需要 git 2.29 或更新版本以從推送的分支繼續。在啟用之前限制推送存取到 `claude/*` 參考;請參閱[已繼續的工作階段會遺失未推送的工作](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#additional-limitations)。通過 `checkout` 生命週期掛鉤簽出的存放庫不會被推送;改為從 [`post-session` 掛鉤](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration#post-session)快照這些。 |

50| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | 在轉向完成或工作階段等待使用者操作後,在 N 分鐘的不活動後釋放工作階段槽。仍在進行中轉向的工作階段(包括持有永不完成的背景工作或從執行中工具呼叫內部請求的批准的工作階段)不計為閒置;與 `--kill-session-after-min` 配對作為硬後擋。在工作階段的背景工作完成後,執行器將工作階段視為忙碌,直到讀取結果的後續轉向開始,最多 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) 視窗。在執行器接收到關閉信號或達到其退休時間之前,留下執行器沒有活動工作階段的釋放會啟動與正常排空相同的退出路徑,由 `--drain-grace-sec` 管理。在您使用 [`--defer-shutdown-max-min`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) 延遲的第一個信號之後,執行器在釋放使其不持有任何工作階段時立即退出。`0` 停用。 |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | 在回合完成或工作階段等待使用者操作後,經過 N 分鐘的不活動即釋放工作階段槽。[某些工作階段不計為閒置](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle),因此請與 `--kill-session-after-min` 搭配使用。已完成的背景任務最多會在 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings) 視窗內讓工作階段保持忙碌。若要延遲釋放,請設定 [`--hold-idle-file`](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy#keep-an-idle-session-while-its-processes-run)。`0` 停用。 |

51| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | 關閉 | 當工作階段在此執行器上結束時,移除 `<base-dir>/_sessions/` 下的工作階段的每個工作階段目錄,無論結果如何。[重複使用預先加熱的簽出](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout)描述它們持有的內容以及當它們保留時誰可以讀取它們。移除是盡力而為:當執行器被終止或在清理執行之前達到其排空期限時,每個工作階段目錄保留在原位。啟用旗標後,失敗或中斷的工作階段的偵錯日誌不會保留在磁碟上。需要 Claude Code v2.1.268 或更新版本。 |53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | 關閉 | 當工作階段在此執行器上結束時,移除 `<base-dir>/_sessions/` 下的工作階段的每個工作階段目錄,無論結果如何。[重複使用預先加熱的簽出](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout)描述它們持有的內容以及當它們保留時誰可以讀取它們。移除是盡力而為:當執行器被終止或在清理執行之前達到其排空期限時,每個工作階段目錄保留在原位。啟用旗標後,失敗或中斷的工作階段的偵錯日誌不會保留在磁碟上。需要 Claude Code v2.1.268 或更新版本。 |

52| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | 未設定 | 在絕對 Unix 時間戳記(秒)時退休執行器,用於在已知時間終止執行器的基礎設施;[執行器生命週期](https://code.claude.com/docs/zh-TW/self-hosted-environments#runner-lifecycle)描述釋放序列以及如何調整邊距。2001 年之前或 5138 年之後的值被旗標拒絕,被環境變數忽略。 |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | 未設定 | 在絕對 Unix 時間戳記(秒)時退休執行器,用於在已知時間終止執行器的基礎設施;[執行器生命週期](https://code.claude.com/docs/zh-TW/self-hosted-environments#runner-lifecycle)描述釋放序列以及如何調整邊距。2001 年之前或 5138 年之後的值被旗標拒絕,被環境變數忽略。 |

53| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | 控制平面隨工作階段傳送的[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器規則清單中,哪些可以送達該工作階段:`all`、`no-allow` 或 `none`。請參閱[自動模式規則清單](#auto-mode-rule-lists)以了解每個值套用的內容。無效的值會使執行器在啟動時停止。需要 Claude Code v2.1.295 或更新版本。 |55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | 控制平面隨工作階段傳送的[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)分類器規則清單中,哪些可以送達該工作階段:`all`、`no-allow` 或 `none`。請參閱[自動模式規則清單](#auto-mode-rule-lists)以了解每個值套用的內容。無效的值會使執行器在啟動時停止。需要 Claude Code v2.1.295 或更新版本。 |


313 315 

314### 針對遺失的執行器與等待中的工作階段發出警報316### 針對遺失的執行器與等待中的工作階段發出警報

315 317 

316在[固定艦隊](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#scale-the-fleet)上,載入 `ClaudeRunnersBelowFloor`。使用[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)時,改為載入 `ClaudeOrchestratorSessionsWaiting` 和 `ClaudeOrchestratorQueueWaitHigh`。318若要在執行器遺失、工作階段等待或協調器停止運作時收到警報,請在[範例警報規則](#sample-alert-rules)之外一併載入這些 Prometheus 警報規則:

319 

320* **[固定艦隊](https://code.claude.com/docs/zh-TW/self-hosted-environments-deploy.md#scale-the-fleet)**:`ClaudeRunnersBelowFloor`

321* **[按需執行器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)**:`ClaudeOrchestratorSessionsWaiting`、`ClaudeOrchestratorQueueWaitHigh` 和 `ClaudeOrchestratorAbsent`

317 322 

318#### 固定艦隊遺失執行器時發出警報323#### 固定艦隊遺失執行器時發出警報

319 324 


371* **閾值**:如果總是有某個工作階段在等待,請將 `ClaudeOrchestratorSessionsWaiting` 中的 `> 0` 提高到高於您通常看到的數字376* **閾值**:如果總是有某個工作階段在等待,請將 `ClaudeOrchestratorSessionsWaiting` 中的 `> 0` 提高到高於您通常看到的數字

372* **`ClaudeOrchestratorDisconnected`**:請保持從[範例警報規則](#sample-alert-rules)載入它,因為 `ClaudeOrchestratorSessionsWaiting` 會在命名空間中最後一個協調器斷開連線約 2 分鐘後停止觸發377* **`ClaudeOrchestratorDisconnected`**:請保持從[範例警報規則](#sample-alert-rules)載入它,因為 `ClaudeOrchestratorSessionsWaiting` 會在命名空間中最後一個協調器斷開連線約 2 分鐘後停止觸發

373 378 

379#### 協調器停止運作時發出警報

380 

381若要得知[協調器](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#on-demand-runners)本身已停止運作,請載入 `ClaudeOrchestratorAbsent`。當命名空間中沒有任何協調器被抓取達 5 分鐘時,它就會觸發:

382 

383```yaml theme={null}

384groups:

385 # 僅限按需執行器。請將 claude-runners 取代為協調器的命名空間。

386 - name: claude-code-self-hosted-on-demand-orchestrator

387 rules:

388 - alert: ClaudeOrchestratorAbsent

389 expr: absent(claude_code_self_hosted_orchestrator_connected{namespace="claude-runners"})

390 for: 5m

391 labels: {severity: critical}

392 annotations:

393 summary: "已有 5 分鐘沒有抓取到任何協調器。如果它已停止運作,就不會啟動任何按需執行器,工作階段會持續等待。請先檢查協調器工作負載,若它正在執行,再檢查其抓取目標。"

394```

395 

396* **命名空間**:將 `claude-runners` 取代為協調器的命名空間,並為每個執行協調器的額外命名空間複製此警報。如果您的目標沒有 `namespace` 標籤,請移除 matcher,否則警報會在 5 分鐘後觸發並持續維持。

397* **未抓取協調器的 Prometheus 伺服器**:請勿將此警報放入其規則檔,因為在這類伺服器上,它會在 5 分鐘後觸發並持續維持

398* **不要依賴協調器的其他警報**:它們讀取的是協調器本身提供的指標。`ClaudeOrchestratorSessionsWaiting`、`ClaudeOrchestratorQueueWaitHigh` 以及協調器的[範例警報規則](#sample-alert-rules),都會在協調器停止運作後約 10 分鐘內停止觸發。

399 

374### 傳遞工作階段子程序指標400### 傳遞工作階段子程序指標

375 401 

376每個工作階段在其自己的子程序中執行,具有自己的 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` 標籤標記每個序列,並在該工作階段結束時驅逐工作階段的序列。直方圖不傳遞,子程序指標的名稱會與執行器自己的前綴衝突被放棄。402每個工作階段在其自己的子程序中執行,具有自己的 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` 標籤標記每個序列,並在該工作階段結束時驅逐工作階段的序列。直方圖不傳遞,子程序指標的名稱會與執行器自己的前綴衝突被放棄。

Details

288 288 

289 當您以管道傳送或重新導向該命令的輸入,且在 macOS 和 Linux 上它也無法開啟 `/dev/tty` 時,該命令就無法從鍵盤讀取。如果您也以管道傳送或重新導向其輸出,該次執行則會改為非互動式,而傳遞的設定只會在該次執行中套用。289 當您以管道傳送或重新導向該命令的輸入,且在 macOS 和 Linux 上它也無法開啟 `/dev/tty` 時,該命令就無法從鍵盤讀取。如果您也以管道傳送或重新導向其輸出,該次執行則會改為非互動式,而傳遞的設定只會在該次執行中套用。

290* **錯誤在您回答之前關閉了對話框**:Claude Code 不會套用傳遞的設定,並保留上次核准的設定。它會在下一個能顯示對話框的工作階段中再次顯示。290* **錯誤在您回答之前關閉了對話框**:Claude Code 不會套用傳遞的設定,並保留上次核准的設定。它會在下一個能顯示對話框的工作階段中再次顯示。

291* **非互動式執行**,例如 `claude -p`、Agent SDK 工作階段,或 VS Code 擴充功能聊天面板或桌面應用程式 Code 分頁中的工作階段:Claude Code 無法顯示對話框,因此當傳遞的設定需要核准時,它只會在該次執行中套用這些設定。它不會將這些設定記錄為已核准,也不會將其寫入[本機快取](#fetch-and-caching-behavior),而下一個互動式工作階段會顯示對話框。在使用者於互動式工作階段中核准之前,每次非互動式執行都會在啟動時再次擷取設定。在 v2.1.207 之前,非互動式執行會將設定儲存為已核准,因此之後的互動式工作階段永遠不會為這些設定顯示對話框。291* **非互動式執行**,例如 `claude -p`、Agent SDK 工作階段,或 VS Code 擴充功能聊天面板或桌面應用程式 Code 分頁中的工作階段:Claude Code 無法顯示對話框。當傳遞的設定需要核准時,這些設定只會在該次執行中套用。

292 

293 Claude Code 不會將這些設定記錄為已核准,也不會將其寫入[本機快取](#fetch-and-caching-behavior),而下一個互動式工作階段會顯示對話框。在使用者於互動式工作階段中核准之前,每次非互動式執行都會在啟動時再次擷取設定。

292 294 

293#### 環境變數與核准對話框295#### 環境變數與核准對話框

294 296 


306* `OTEL_EXPORTER_OTLP_ENDPOINT`308* `OTEL_EXPORTER_OTLP_ENDPOINT`

307* `CLAUDE_CODE_DISABLE_1M_CONTEXT`309* `CLAUDE_CODE_DISABLE_1M_CONTEXT`

308 310 

309當傳遞的變數需要核准時,對話框會列出其名稱,讓使用者確切看到政策要求設定的內容。在 v2.1.218 之前,Claude Code 在不詢問使用者的情況下套用的變數較少,因此像 `DISABLE_AUTO_COMPACT` 這樣的設定只要是非空值就會觸發對話框。311當傳遞的變數需要核准時,對話框會列出其名稱,讓使用者確切看到政策要求設定的內容。

310 312 

311Claude Code 會依據傳遞的值而非變數名稱,來決定四個隱私切換是否需要核准:`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_ERROR_REPORTING`、`DISABLE_TELEMETRY` 和 `DO_NOT_TRACK`。真值(例如 `1` 或 `true`)只會關閉追蹤、回報或其他非必要流量,因此 Claude Code 會在不詢問使用者的情況下套用。對於任何其他非空值,Claude Code 會顯示對話框。在 v2.1.218 之前,除了 `DO_NOT_TRACK` 之外,這些變數在任何值下都無需核准即可套用,而 `DO_NOT_TRACK` 只要是非空值就會觸發對話框。313Claude Code 會依據傳遞的值而非變數名稱,來決定四個隱私切換是否需要核准:`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_ERROR_REPORTING`、`DISABLE_TELEMETRY` 和 `DO_NOT_TRACK`。真值(例如 `1` 或 `true`)只會關閉追蹤、回報或其他非必要流量,因此 Claude Code 會在不詢問使用者的情況下套用。對於任何其他非空值,Claude Code 會顯示對話框。

312 314 

313Claude Code 也會依據傳遞的值來決定 [`API_FORCE_IDLE_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 是否需要核准:真值只會開啟[主體閒置逾時](https://code.claude.com/docs/zh-TW/network-config.md#streaming-idle-watchdogs),因此 Claude Code 會在不詢問使用者的情況下套用。對於任何其他非空值,Claude Code 會顯示對話框。在 v2.1.248 之前,任何非空值都會觸發對話框。315Claude Code 也會依據傳遞的值來決定 [`API_FORCE_IDLE_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 是否需要核准:真值只會開啟[主體閒置逾時](https://code.claude.com/docs/zh-TW/network-config.md#streaming-idle-watchdogs),因此 Claude Code 會在不詢問使用者的情況下套用。對於任何其他非空值,Claude Code 會顯示對話框。在 v2.1.248 之前,任何非空值都會觸發對話框。

314 316 

sessions.md +2 −2

Details

46當 Claude Code 從逐字稿載入對話時,恢復的工作階段會復原該對話以及其中儲存的狀態:46當 Claude Code 從逐字稿載入對話時,恢復的工作階段會復原該對話以及其中儲存的狀態:

47 47 

48* 對話記錄:訊息、工具呼叫和結果。如果工作階段曾被[壓縮](https://code.claude.com/docs/zh-TW/context-window.md#what-survives-compaction),對話會在 `Conversation compacted` 列開啟。Claude 會以最後一次壓縮的摘要、該次壓縮未摘要的訊息,以及之後的每則訊息繼續。最後一次壓縮所摘要的訊息不會再次載入。48* 對話記錄:訊息、工具呼叫和結果。如果工作階段曾被[壓縮](https://code.claude.com/docs/zh-TW/context-window.md#what-survives-compaction),對話會在 `Conversation compacted` 列開啟。Claude 會以最後一次壓縮的摘要、該次壓縮未摘要的訊息,以及之後的每則訊息繼續。最後一次壓縮所摘要的訊息不會再次載入。

49* 中斷的工具呼叫:在前一個程序結束時(例如當機時)仍在執行的工具,在您恢復時不會完成或再次執行。Claude 會看到該呼叫被標記為在結果記錄之前就被中斷,並被告知在再次執行之前先檢查它是否已生效,除非設定了 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](https://code.claude.com/docs/zh-TW/env-vars#variables)。49* 中斷的工具呼叫:在前一個程序結束時(例如當機時)仍在執行的工具,在您恢復時不會再次執行。

50* 模型:工作階段會繼續使用其原本使用的模型,但[設定您的模型](https://code.claude.com/docs/zh-TW/model-config.md#setting-your-model)中所述的情況除外。50* 模型:工作階段會繼續使用其原本使用的模型,但[設定您的模型](https://code.claude.com/docs/zh-TW/model-config.md#setting-your-model)中所述的情況除外。

51* Agent:使用 [`--agent`](https://code.claude.com/docs/zh-TW/sub-agents#invoke-subagents-explicitly) 或 `agent` 設定啟動的工作階段會繼續作為該 agent 運作,並保留其工具限制和模型。恢復時傳遞 `--agent` 可選擇不同的 agent;關於任一情況下的系統提示詞,請參閱[恢復對話中的系統提示詞旗標](https://code.claude.com/docs/zh-TW/cli-reference.md#system-prompt-flags-in-resumed-conversations)。Claude Code 會在兩個地方尋找該 agent:工作階段的原始目錄(前提是您已[信任該工作區](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)),然後是您進行恢復的目錄,因此當您從另一個目錄恢復時,專案範圍的 agent 仍會載入。如果 Claude Code 在這兩個地方都找不到該 agent,工作階段會以預設工具恢復,並顯示[指出該 agent 名稱的警告](https://code.claude.com/docs/zh-TW/errors.md#session-agent-no-longer-available)。51* Agent:使用 [`--agent`](https://code.claude.com/docs/zh-TW/sub-agents#invoke-subagents-explicitly) 或 `agent` 設定啟動的工作階段會繼續作為該 agent 運作,並保留其工具限制和模型。恢復時傳遞 `--agent` 可選擇不同的 agent;關於任一情況下的系統提示詞,請參閱[恢復對話中的系統提示詞旗標](https://code.claude.com/docs/zh-TW/cli-reference.md#system-prompt-flags-in-resumed-conversations)。Claude Code 會在兩個地方尋找該 agent:工作階段的原始目錄(前提是您已[信任該工作區](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)),然後是您進行恢復的目錄,因此當您從另一個目錄恢復時,專案範圍的 agent 仍會載入。如果 Claude Code 在這兩個地方都找不到該 agent,工作階段會以預設工具恢復,並顯示[指出該 agent 名稱的警告](https://code.claude.com/docs/zh-TW/errors.md#session-agent-no-longer-available)。

52* 權限模式:如果您在終端機中使用 `claude --continue`、`claude --resume <session-id>` 或 `claude --resume <name>`(當名稱符合單一工作階段時)且不帶 `-p` 恢復,Claude Code 會復原工作階段當時的權限模式,但[恢復時的權限模式](#permission-mode-on-resume)中的情況除外,該節也涵蓋工作階段選擇器、`/resume` 以及使用 `claude -p` 恢復。傳遞 `--permission-mode` 或 `--dangerously-skip-permissions` 可覆寫復原的模式。52* 權限模式:如果您在終端機中使用 `claude --continue`、`claude --resume <session-id>` 或 `claude --resume <name>`(當名稱符合單一工作階段時)且不帶 `-p` 恢復,Claude Code 會復原工作階段當時的權限模式,但[恢復時的權限模式](#permission-mode-on-resume)中的情況除外,該節也涵蓋工作階段選擇器、`/resume` 以及使用 `claude -p` 恢復。傳遞 `--permission-mode` 或 `--dangerously-skip-permissions` 可覆寫復原的模式。


224* **`/compact [instructions]`**:用摘要替換歷史記錄,可選擇性地專注於您指定的內容224* **`/compact [instructions]`**:用摘要替換歷史記錄,可選擇性地專注於您指定的內容

225* **`/context`**:顯示目前消耗上下文的內容225* **`/context`**:顯示目前消耗上下文的內容

226 226 

227有關壓縮如何與 CLAUDE.md、skills 和規則互動,請參閱[上下文視窗指南](https://code.claude.com/docs/zh-TW/context-window.md)。有關何時清除與壓縮的策略,請參閱[最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md#manage-your-session)。227有關壓縮如何與 CLAUDE.md、skills 和規則互動,請參閱[上下文視窗指南](https://code.claude.com/docs/zh-TW/context-window.md)。有關何時清除與壓縮的策略,請參閱[最佳實踐](https://code.claude.com/docs/zh-TW/best-practices.md#keep-cost-and-context-down)。

228 228 

229## 匯出和定位工作階段資料229## 匯出和定位工作階段資料

230 230 

settings.md +1 −1

Details

326* **具有多個儲存庫的共享專案設定**:在 Anthropic 託管的環境中,具有多個儲存庫的工作階段在複製上方啟動,並從每個儲存庫的 `.claude/settings.json` 只讀取 `enabledPlugins` 和 `extraKnownMarketplaces` 設定鍵,而不是權限規則、hook、`env` 或其他設定鍵。這兩個設定鍵宣告的市集和外掛仍然[不會在雲端工作階段中載入](https://code.claude.com/docs/zh-TW/cloud-environments.md#what-carries-over-from-your-setup)。若為自託管環境,請參閱[適用哪個儲存庫的設定](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#repository-settings-in-sessions-with-several-repositories)。326* **具有多個儲存庫的共享專案設定**:在 Anthropic 託管的環境中,具有多個儲存庫的工作階段在複製上方啟動,並從每個儲存庫的 `.claude/settings.json` 只讀取 `enabledPlugins` 和 `extraKnownMarketplaces` 設定鍵,而不是權限規則、hook、`env` 或其他設定鍵。這兩個設定鍵宣告的市集和外掛仍然[不會在雲端工作階段中載入](https://code.claude.com/docs/zh-TW/cloud-environments.md#what-carries-over-from-your-setup)。若為自託管環境,請參閱[適用哪個儲存庫的設定](https://code.claude.com/docs/zh-TW/self-hosted-environments-configuration.md#repository-settings-in-sessions-with-several-repositories)。

327* **使用者和專案本機設定**(`~/.claude/settings.json` 和 `.claude/settings.local.json`):未讀取。兩者都保留在您的機器上,本機檔案不在複製中。327* **使用者和專案本機設定**(`~/.claude/settings.json` 和 `.claude/settings.local.json`):未讀取。兩者都保留在您的機器上,本機檔案不在複製中。

328* **受管設定**:您組織的[伺服器管理設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)會到達雲端工作階段;您裝置上的 `managed-settings.json` 檔案或 MDM 設定檔不會。[表面涵蓋範圍](https://code.claude.com/docs/zh-TW/model-config.md#surface-coverage)列出哪些雲端工作階段接收它們。[自託管環境](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)說明該檔案何時適用。328* **受管設定**:您組織的[伺服器管理設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md)會到達雲端工作階段;您裝置上的 `managed-settings.json` 檔案或 MDM 設定檔不會。[表面涵蓋範圍](https://code.claude.com/docs/zh-TW/model-config.md#surface-coverage)列出哪些雲端工作階段接收它們。[自託管環境](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)說明該檔案何時適用。

329* **`/config`**:在您的瀏覽器中的 claude.ai/code,開啟您的 claude.ai 設定的 Claude Code 部分而不是變更值。若要為雲端工作階段變更設定,請在環境上設定[環境變數](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)。在專案執行緒之外具有一個儲存庫的工作階段中,您也可以改為將設定鍵提交到該儲存庫的 `.claude/settings.json`。329* **`/config`**:在您的瀏覽器中的 claude.ai/code,會開啟您的 claude.ai **Code** 或 **Claude Code** 設定頁面,而不是變更值。若要為雲端工作階段變更設定,請在環境上設定[環境變數](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)。在專案執行緒之外具有一個儲存庫的工作階段中,您也可以改為將設定鍵提交到該儲存庫的 `.claude/settings.json`。

330 330 

331[從您的設定進行的內容](https://code.claude.com/docs/zh-TW/cloud-environments.md#what-carries-over-from-your-setup)列出其餘部分:`CLAUDE.md`、skills、MCP 伺服器、plugins 和認證。331[從您的設定進行的內容](https://code.claude.com/docs/zh-TW/cloud-environments.md#what-carries-over-from-your-setup)列出其餘部分:`CLAUDE.md`、skills、MCP 伺服器、plugins 和認證。

332 332 

Details

1293* 以 `sudo`、`eval` 或 `xargs` 開頭的命令1293* 以 `sudo`、`eval` 或 `xargs` 開頭的命令

1294* `cd`、`pushd` 或 `popd`,無論出現在呼叫中的何處1294* `cd`、`pushd` 或 `popd`,無論出現在呼叫中的何處

1295* 命令替換、子 shell,或 `if`、`for` 等控制流程區塊1295* 命令替換、子 shell,或 `if`、`for` 等控制流程區塊

1296* 重新導向,例如 `docker build . > build.log`,但僅複製檔案描述元的重新導向(如 `2>&1`)除外1296* 重新導向,例如 `docker build . > build.log` 或 `<<EOF` heredoc,但僅複製檔案描述元的重新導向(如 `2>&1`)除外

1297* 命令名稱來自變數1297* 命令名稱來自變數

1298* 帶有絕對路徑、以 `~` 開頭或包含 `..` 區段之路徑引數的 `git clone`、`git init`、`git worktree add`、`git worktree move` 或 `git bundle create`1298* 帶有絕對路徑、以 `~` 開頭或包含 `..` 區段之路徑引數的 `git clone`、`git init`、`git worktree add`、`git worktree move` 或 `git bundle create`

1299 1299 


1521 1521 

1522### `sandbox.filesystem.disabled`1522### `sandbox.filesystem.disabled`

1523 1523 

1524略過檔案系統隔離,同時保留網路隔離。沙箱化命令會取得對主機檔案系統不受限制的讀取和寫入存取權,而其網路輸出流量仍限制在 [`network.allowedDomains`](#sandbox-network-alloweddomains) 內。當您使用沙箱是為了控制命令連線的目的地,而非它們寫入的內容時,請使用此項。需要 Claude Code v2.1.216 或更新版本。1524略過檔案系統隔離,同時保留網路隔離。沙箱化命令可不受限制地讀取和寫入主機檔案系統,而其網路輸出流量仍限於 [`network.allowedDomains`](#sandbox-network-alloweddomains)。當您使用沙箱是為了控制命令連線的目的地,而非它們寫入的內容時,請使用此設定。

1525 1525 

1526* **範圍**:[`User or managed`](#scopes)。當受管設定有任何 `sandbox.filesystem` 設定,或列出 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定能設定此項。1526* **範圍**:[`User or managed`](#scopes)。當受管設定有任何 `sandbox.filesystem` 設定,或列出 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定能設定此項。

1527* **類型**:布林值1527* **類型**:布林值


1545}1545}

1546```1546```

1547 1547 

1548關閉此層時,Claude Code 不會強制執行 `denyRead` 或 `credentials.files` 的 `deny` 項目,而 `credentials.envVars` 項目和已套用的 `mask` 項目則會繼續運作。[`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) 的預設值仍為 `true`,因此若要繼續顯示提示,請將其設為 `false`。關於可設定此項的完整來源清單,以及關閉隔離後會有哪些變化,請參閱[停用檔案系統隔離](https://code.claude.com/docs/zh-TW/sandboxing.md#disable-filesystem-isolation)。需要 Claude Code v2.1.216 或更新版本。1548關閉此層後,Claude Code 不會強制執行 `denyRead` 或 `credentials.files` 的 `deny` 項目,而 `credentials.envVars` 項目和已套用的 `mask` 項目則會繼續運作。[`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) 的預設值仍為 `true`,因此若要繼續提示,請將其設為 `false`。關於可設定此鍵的完整來源清單以及關閉隔離後的變化,請參閱 [停用檔案系統隔離](https://code.claude.com/docs/zh-TW/sandboxing.md#disable-filesystem-isolation)。

1549 1549 

1550### `sandbox.ignoreViolations`1550### `sandbox.ignoreViolations`

1551 1551 


2392* [`CLAUDE_CODE_RESTRICTED`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。2392* [`CLAUDE_CODE_RESTRICTED`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。

2393* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。此變數需要 Claude Code v2.1.283 或更高版本。2393* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。此變數需要 Claude Code v2.1.283 或更高版本。

2394* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`、`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`、`CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` 和 `CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。2394* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`、`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`、`CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` 和 `CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。

2395* [`CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。

2395* [`CLAUDE_CODE_WARN_DISK_FREE_GIB` 和 `CLAUDE_CODE_WARN_MEMORY_FREE_GIB`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。這些變數需要 Claude Code v2.1.304 或更高版本。2396* [`CLAUDE_CODE_WARN_DISK_FREE_GIB` 和 `CLAUDE_CODE_WARN_MEMORY_FREE_GIB`](https://code.claude.com/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。這些變數需要 Claude Code v2.1.304 或更高版本。

2396 2397 

2397### `fileCheckpointingEnabled`2398### `fileCheckpointingEnabled`


2716}2717}

2717```2718```

2718 2719 

2719請參閱[表情符號簡碼](https://code.claude.com/docs/zh-TW/interactive-mode.md#emoji-shortcodes)。需要 Claude Code v2.1.217 或更新版本。2720請參閱[表情符號簡碼](https://code.claude.com/docs/zh-TW/interactive-mode.md#emoji-shortcodes)。

2720 2721 

2721### `fileSuggestion`2722### `fileSuggestion`

2722 2723 


3691 3692 

3692### `workflowSizeGuideline`3693### `workflowSizeGuideline`

3693 3694 

3694設定 [Claude 在其撰寫的動態工作流程中所瞄準的 agent 數量](https://code.claude.com/docs/zh-TW/workflows.md#set-a-size-guideline)。Claude Code 將此值作為建議而非強制上限傳送給 Claude:`"small"` 要求少於 5 個 agent,`"medium"` 少於 10 個,`"large"` 少於 50 個。當您想要限制工作流程的花費時,請選擇 `"small"`。需要 Claude Code v2.1.219 或更新版本。3695設定 [Claude 在其撰寫的動態工作流程中所瞄準的 agent 數量](https://code.claude.com/docs/zh-TW/workflows.md#set-a-size-guideline)。Claude Code 將此值作為建議而非強制上限傳送給 Claude:`"small"` 要求少於 5 個 agent,`"medium"` 少於 10 個,`"large"` 少於 50 個。當您想要限制工作流程的花費時,請選擇 `"small"`。

3695 3696 

3696* **範圍**:[`Any file`](#scopes)。設定檔中的值優先於 `/config` 中的 **Dynamic workflow size** 選項(Claude Code 將其儲存在 `~/.claude.json` 中),且當設定檔設定此設定鍵時,Claude Code 會隱藏該列。3697* **範圍**:[`Any file`](#scopes)。設定檔中的值優先於 `/config` 中的 **Dynamic workflow size** 選項(Claude Code 將其儲存在 `~/.claude.json` 中),且當設定檔設定此設定鍵時,Claude Code 會隱藏該列。

3697* **類型**:字串,為下列其中之一:3698* **類型**:字串,為下列其中之一:


3707}3708}

3708```3709```

3709 3710 

3710需要 Claude Code v2.1.219 或更新版本;在 v2.1.202 到 v2.1.218 上,請改為在 `/config` 中設定指引。

3711 

3712## 外掛與 skill3711## 外掛與 skill

3713 3712 

3714啟用 plugins,註冊 marketplaces,限制組織允許的 plugin 來源,以及控制哪些 skills 載入。如需安裝和建置 plugins,請參閱 [Plugins](https://code.claude.com/docs/zh-TW/plugins/overview.md)。3713啟用 plugins,註冊 marketplaces,限制組織允許的 plugin 來源,以及控制哪些 skills 載入。如需安裝和建置 plugins,請參閱 [Plugins](https://code.claude.com/docs/zh-TW/plugins/overview.md)。

skills.md +5 −7

Details

83| 子命令 | 功能 | 最低版本 |83| 子命令 | 功能 | 最低版本 |

84| :- | :- | :- |84| :- | :- | :- |

85| `migrate` | 將您現有的 Claude API 程式碼更新到較新的模型 | 早於 v2.1.221 |85| `migrate` | 將您現有的 Claude API 程式碼更新到較新的模型 | 早於 v2.1.221 |

86| `upgrade` | 將您的專案的 Anthropic SDK 依賴項跨越主要版本移動,目前是 Python `anthropic` 套件從 0.x 到 1.x | v2.1.236 或更新版本 |86| `upgrade` | 將您專案的 Anthropic SDK 升級到新的主要版本,並針對其破壞性變更更新您的程式碼 | v2.1.236 或更新版本 |

87| `api-version` | 針對較新的 [API 版本](https://platform.claude.com/docs/en/api/versioning)更新您的 Claude API 程式碼,然後將您的請求切換至該版本 | v2.1.307 或更新版本 |87| `api-version` | 針對較新的 [API 版本](https://platform.claude.com/docs/en/api/versioning)更新您的 Claude API 程式碼,然後將您的請求切換至該版本 | v2.1.307 或更新版本 |

88| `managed-agents-onboard` | 逐步完成建立新的受管代理 | 早於 v2.1.221 |88| `managed-agents-onboard` | 逐步完成建立新的受管代理 | 早於 v2.1.221 |

89| `managed-agents-onboard <url>` | 建立該 URL 頁面所描述的 Managed Agent,例如 [Managed Agents 文件](https://platform.claude.com/docs/en/managed-agents/overview)中的頁面 | v2.1.290 或更新版本 |89| `managed-agents-onboard <url>` | 建立該 URL 頁面所描述的 Managed Agent,例如 [Managed Agents 文件](https://platform.claude.com/docs/en/managed-agents/overview)中的頁面 | v2.1.290 或更新版本 |


3713. Push to the deployment target3713. Push to the deployment target

372```372```

373 373 

374保持主體本身簡潔。一旦 skill 加載,其內容[在各個回合中保持在上下文中](#skill-content-lifecycle),因此每一行都是一個重複的 token 成本。說明要做什麼,而不是敘述如何或為什麼,並應用與[CLAUDE.md 內容](https://code.claude.com/docs/zh-TW/best-practices.md#write-an-effective-claude-md)相同的簡潔性測試。374保持主體本身簡潔。一旦 skill 加載,其內容[在各個回合中保持在上下文中](#skill-content-lifecycle),因此每一行都是一個重複的 token 成本。說明要做什麼,而不是敘述如何或為什麼,並應用與[CLAUDE.md 內容](https://code.claude.com/docs/zh-TW/best-practices.md#keep-claude-md-short)相同的簡潔性測試。

375 375 

376### Frontmatter 參考376### Frontmatter 參考

377 377 


388Your skill instructions here...388Your skill instructions here...

389```389```

390 390 

391所有欄位都是可選的。只有 `description` 是建議的,以便 Claude 知道何時使用 skill。欄位名稱必須與表格完全匹配,包括連字號:Claude Code 會忽略它不識別的欄位,而不報告錯誤。391所有欄位都是可選的。只有 `description` 是建議的,以便 Claude 知道何時使用 skill。欄位名稱必須與表格完全匹配,包括連字號:Claude Code 會忽略它不識別的欄位,而不報告錯誤。布林欄位除了 `true` 和 `false` 之外,也接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小寫)。

392 392 

393Claude Code 僅在開啟 `---` 是檔案的第一行時讀取 frontmatter。否則,它將整個檔案(包括 `---` 標記)視為 skill 內容。如果標記之間的 YAML 無法解析,skill 仍會加載,但沒有設定任何欄位;請參閱[Skill 未觸發](#skill-not-triggering)以查找並修復錯誤。393Claude Code 僅在開啟 `---` 是檔案的第一行時讀取 frontmatter。否則,它將整個檔案(包括 `---` 標記)視為 skill 內容。如果標記之間的 YAML 無法解析,skill 仍會加載,但沒有設定任何欄位;請參閱[Skill 未觸發](#skill-not-triggering)以查找並修復錯誤。

394 394 

395布林欄位接受 `yes`、`no`、`on`、`off`、`1` 和 `0`(任何字母大小寫),以及 `true` 和 `false`。在 v2.1.218 之前,Claude Code 僅識別 `true` 和 `false`。

396 

397| 欄位 | 必需 | 說明 |395| 欄位 | 必需 | 說明 |

398| :- | :- | :- |396| :- | :- | :- |

399| `name` | 否 | 在 `/` 菜單中顯示的命令名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |397| `name` | 否 | 在 `/` 菜單中顯示的命令名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |


409| `effort` | 否 | 此 skill 處於活動狀態時的[effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。覆寫工作階段 effort 等級。省略時,等級依[effort 解析順序](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)決定。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用等級取決於模型。 |407| `effort` | 否 | 此 skill 處於活動狀態時的[effort 等級](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)。覆寫工作階段 effort 等級。省略時,等級依[effort 解析順序](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level)決定。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用等級取決於模型。 |

410| `context` | 否 | 設定為 `fork` 以在分叉子代理上下文中運行。請參閱[在子代理中運行 skills](#run-skills-in-a-subagent)。 |408| `context` | 否 | 設定為 `fork` 以在分叉子代理上下文中運行。請參閱[在子代理中運行 skills](#run-skills-in-a-subagent)。 |

411| `agent` | 否 | 設定 `context: fork` 時要使用的子代理類型。 |409| `agent` | 否 | 設定 `context: fork` 時要使用的子代理類型。 |

412| `background` | 否 | 僅適用於 `context: fork`。設定為 `false` 以在調用 skill 的回合中等待分叉子代理的結果,而不是[在背景中運行它](#run-skills-in-a-subagent)。預設值:`true`。需要 Claude Code v2.1.218 或更新版本。 |410| `background` | 否 | 僅適用於 `context: fork`。設定為 `false` 以在調用 skill 的回合中等待分叉 subagent 的結果,而不是[在背景中運行它](#run-skills-in-a-subagent)。預設值:`true`。 |

413| `hooks` | 否 | Claude Code 在調用 skill 時註冊並在工作階段的其餘部分保持運行的 hooks。請參閱[Skills 和 agents 中的 Hooks](https://code.claude.com/docs/zh-TW/hooks.md#hooks-in-skills-and-agents)以了解設定格式、`once` 選項,以及 [skill hook 的限制](https://code.claude.com/docs/zh-TW/hooks.md#limits-on-skill-hooks)。 |411| `hooks` | 否 | Claude Code 在調用 skill 時註冊並在工作階段的其餘部分保持運行的 hooks。請參閱[Skills 和 agents 中的 Hooks](https://code.claude.com/docs/zh-TW/hooks.md#hooks-in-skills-and-agents)以了解設定格式、`once` 選項,以及 [skill hook 的限制](https://code.claude.com/docs/zh-TW/hooks.md#limits-on-skill-hooks)。 |

414| `paths` | 否 | Glob 模式,限制何時啟動此 skill。接受以逗號分隔的字串或 YAML 列表。設定時,Claude 僅在處理與模式匹配的檔案時自動加載 skill。模式相對於 Claude 目前的工作目錄,該目錄之外的檔案不會匹配。使用與[路徑特定規則](https://code.claude.com/docs/zh-TW/memory.md#path-specific-rules)相同的 glob 格式。 |412| `paths` | 否 | Glob 模式,限制何時啟動此 skill。接受以逗號分隔的字串或 YAML 列表。設定時,Claude 僅在處理與模式匹配的檔案時自動加載 skill。模式相對於 Claude 目前的工作目錄,該目錄之外的檔案不會匹配。使用與[路徑特定規則](https://code.claude.com/docs/zh-TW/memory.md#path-specific-rules)相同的 glob 格式。 |

415| `shell` | 否 | 用於此 skill 中 `` !`command` `` 和 ` ```! ` 區塊的 shell。接受 `bash`(預設)或 `powershell`。設定 `powershell` 在啟用 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool)時透過 PowerShell 運行內聯 shell 命令:在沒有 Git Bash 的 Windows 上預設開啟,在具有 Git Bash 的 claude.ai 和 Console 帳戶上預設開啟,在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 工作階段以及 macOS、Linux 和 WSL 上需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。設定為 `0` 以關閉工具。 |413| `shell` | 否 | 用於此 skill 中 `` !`command` `` 和 ` ```! ` 區塊的 shell。接受 `bash`(預設)或 `powershell`。設定 `powershell` 在啟用 [PowerShell 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#powershell-tool)時透過 PowerShell 運行內聯 shell 命令:在沒有 Git Bash 的 Windows 上預設開啟,在具有 Git Bash 的 claude.ai 和 Console 帳戶上預設開啟,在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 工作階段以及 macOS、Linux 和 WSL 上需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。設定為 `0` 以關閉工具。 |


800>798>

801> 儘管名稱如此,具有 `context: fork` 的技能不會在[目前對話的分叉](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation)中執行,這會將您迄今為止討論的所有內容交給子代理。當工作取決於該歷史記錄時,請分叉對話而不是使用 `context: fork`。799> 儘管名稱如此,具有 `context: fork` 的技能不會在[目前對話的分叉](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation)中執行,這會將您迄今為止討論的所有內容交給子代理。當工作取決於該歷史記錄時,請分叉對話而不是使用 `context: fork`。

802 800 

803分叉的子代理在[背景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)中執行:您可以在它執行時繼續工作,其結果在完成時到達您的對話。在 frontmatter 中設定 `background: false` 以改為在呼叫技能的回合中等待結果。在 v2.1.218 之前,分叉技能總是阻止回合直到它們完成。801分叉的 subagent 在[背景](https://code.claude.com/docs/zh-TW/sub-agents.md#run-subagents-in-foreground-or-background)中執行:您可以在它執行時繼續工作,其結果會在完成時送達您的對話。在 frontmatter 中設定 `background: false`,即可改為在呼叫 skill 的回合中等待結果。

804 802 

805Claude Code 也會等待結果,即使技能沒有設定 `background: false`,在以下情況下:803Claude Code 也會等待結果,即使技能沒有設定 `background: false`,在以下情況下:

806 804 

sub-agents.md +6 −13

Details

153 153 

154### 選擇子代理範圍154### 選擇子代理範圍

155 155 

156根據範圍將子代理檔案儲存在不同位置。當多個子代理共享相同名稱時,Claude Code 會使用來自優先級較高位置的子代理。156根據範圍將子代理檔案儲存在不同位置。當多個子代理共享相同名稱時,Claude Code 會使用來自優先順序較高位置的子代理。

157 157 

158| 位置 | 範圍 | 優先級 | 如何建立 |158| 位置 | 範圍 | 優先順序 | 如何建立 |

159| :- | :- | :- | :- |159| :- | :- | :- | :- |

160| 受管設定 | 組織範圍 | 1(最高) | 透過[受管設定](https://code.claude.com/docs/zh-TW/settings.md)部署 |160| 受管設定 | 組織範圍 | 1(最高) | 透過[受管設定](https://code.claude.com/docs/zh-TW/settings.md)部署 |

161| `--agents` CLI 旗標 | 目前工作階段 | 2 | 啟動 Claude Code 時傳遞 JSON |161| `--agents` CLI 旗標 | 目前工作階段 | 2 | 啟動 Claude Code 時傳遞 JSON |


352* **完整模型 ID**:使用完整模型 ID,例如 `claude-opus-5-5` 或 `claude-sonnet-5`。接受與 `--model` 旗標相同的值352* **完整模型 ID**:使用完整模型 ID,例如 `claude-opus-5-5` 或 `claude-sonnet-5`。接受與 `--model` 旗標相同的值

353* **inherit**:使用與主對話相同的模型353* **inherit**:使用與主對話相同的模型

354 354 

355當 Claude 叫用子代理時,它也可以為該特定叫用傳遞 `model` 參數。Claude Code 按此順序解析子代理的模型:355當 Claude 叫用 subagent 時,它也可以為該次叫用傳遞 `model` 參數。在 Agent 工具呼叫中,該參數接受模型別名:`sonnet`、`opus`、`haiku` 或 `fable`。Claude 無法在該呼叫中傳遞完整模型 ID 或 `inherit`。Claude Code 會依此順序解析 subagent 的模型:

356 356 

3571. 每次叫用 `model` 參數3571. 每次叫用 `model` 參數

3582. 子代理定義的 `model` frontmatter,其中 `inherit` 選擇主對話的模型3582. 子代理定義的 `model` frontmatter,其中 `inherit` 選擇主對話的模型


600| `default` | 手動模式:提示權限 |600| `default` | 手動模式:提示權限 |

601| `acceptEdits` | 自動接受檔案編輯和工作目錄或 `additionalDirectories` 中路徑的常見檔案系統命令 |601| `acceptEdits` | 自動接受檔案編輯和工作目錄或 `additionalDirectories` 中路徑的常見檔案系統命令 |

602| `auto` | [自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode):背景分類器檢查命令和受保護目錄寫入 |602| `auto` | [自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode):背景分類器檢查命令和受保護目錄寫入 |

603| `dontAsk` | 自動拒絕會觸發提示的呼叫,但您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。明確允許的工具仍可使用。`AskUserQuestion`、標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具、[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),以及在該設定適用於 Claude Code 的工作階段中[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,即使您已允許也會被拒絕 |603| `dontAsk` | 自動拒絕會觸發提示的呼叫,但您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。明確允許的工具仍可使用。`AskUserQuestion`、標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具、[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),以及在該設定到達 Claude Code 的工作階段中[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,即使您已允許也會被拒絕 |

604| `bypassPermissions` | [跳過權限提示](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)。子代理僅在主對話執行此模式時在此模式中執行 |604| `bypassPermissions` | [跳過權限提示](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)。子代理僅在主對話執行此模式時在此模式中執行 |

605| `plan` | Plan 模式(唯讀探索) |605| `plan` | Plan 模式(唯讀探索) |

606 606 


760>760>

761> Frontmatter hooks 在代理透過 Agent 工具或 @-mention 生成為子代理時觸發,以及當代理透過 [`--agent`](#invoke-subagents-explicitly) 或 `agent` 設定作為主工作階段執行時。在主工作階段情況下,它們與 [`settings.json`](https://code.claude.com/docs/zh-TW/hooks) 中定義的任何 hooks 一起執行。761> Frontmatter hooks 在代理透過 Agent 工具或 @-mention 生成為子代理時觸發,以及當代理透過 [`--agent`](#invoke-subagents-explicitly) 或 `agent` 設定作為主工作階段執行時。在主工作階段情況下,它們與 [`settings.json`](https://code.claude.com/docs/zh-TW/hooks) 中定義的任何 hooks 一起執行。

762 762 

763若要讓專案級子代理的 frontmatter hooks 執行,接受包含代理檔案的資料夾的[工作區信任對話](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)。來自 `~/.claude/agents/` 中使用者級子代理的 Hooks 和來自您使用 `--agents` 傳遞的定義的 Hooks 無需此步驟即可執行。如果您從受信任工作區儲存庫外使用 `--add-dir` 新增資料夾,單獨信任該資料夾:其 `.claude/agents/` hooks 不繼承工作區的授予。763若要讓專案層級 subagent 的 frontmatter hook 執行,請接受包含該 agent 檔案之資料夾的[工作區信任對話框](https://code.claude.com/docs/zh-TW/permissions.md#project-allow-rules-and-workspace-trust)。來自 `~/.claude/agents/` 中使用者層級 subagent 的 hook,以及來自您使用 `--agents` 傳遞之定義的 hook,無需此步驟即可執行。如果您使用 `--add-dir` 從受信任工作區的儲存庫之外新增資料夾,請另外信任該資料夾:其 `.claude/agents/` hook 不會繼承工作區的授權。

764 764 

765直到您信任資料夾,子代理仍然執行,但 Claude Code 跳過其 frontmatter hooks 並將錯誤記錄到偵錯日誌,解釋如何信任資料夾。這是比設定檔中 hooks 的規則更嚴格的規則:信任父資料夾不夠,`-p` 工作階段不計為受信任。[在您信任資料夾前執行的內容](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)比較兩者。在 v2.1.218 之前,frontmatter hooks 可以從您未信任的資料夾執行,包括在非互動工作階段中。765在您信任資料夾之前,subagent 仍會執行,但 Claude Code 會跳過其 frontmatter hook,並將說明如何信任該資料夾的錯誤記錄到除錯日誌。這是比設定檔中 hook 更嚴格的規則:信任父資料夾並不足夠,且 `-p` 工作階段不算作受信任。[在您信任資料夾前會執行的內容](https://code.claude.com/docs/zh-TW/permissions.md#what-runs-before-you-trust-a-folder)比較了這兩者。

766 766 

767所有[hook 事件](https://code.claude.com/docs/zh-TW/hooks.md#hook-events)都被支援。子代理最常見的事件是:767所有[hook 事件](https://code.claude.com/docs/zh-TW/hooks.md#hook-events)都被支援。子代理最常見的事件是:

768 768 


1075 1075 

1076在終端機中,Claude Code 會在提示輸入下方的 subagent 面板中將巢狀 subagents 顯示為樹狀結構,並用 `(+N)` 計數標記面板中仍有後代的每一列。開啟一列以查看該 subagent 的同級和直接子代,以及返回到 `main` 的路徑。1076在終端機中,Claude Code 會在提示輸入下方的 subagent 面板中將巢狀 subagents 顯示為樹狀結構,並用 `(+N)` 計數標記面板中仍有後代的每一列。開啟一列以查看該 subagent 的同級和直接子代,以及返回到 `main` 的路徑。

1077 1077 

1078> [!NOTE]

1079>

1080> 較早的版本使用了不同的預設值:

1081>

1082> * **v2.1.172 至 v2.1.216**:subagents 預設可以巢狀,最多五層深,限制無法改變。

1083> * **v2.1.217 至 v2.1.218**:限制預設為一,所以 subagent 無法產生自己的 subagents,除非您提高它;v2.1.219 將預設提高到三。

1084 

1085### 並行 subagent 限制1078### 並行 subagent 限制

1086 1079 

1087兩個限制控制 subagent 使用,每個都有自己的變數:這個限制阻止 Claude 在太多 subagents 執行時產生更多 subagents,[深度限制](#let-subagents-spawn-their-own-subagents) 限制 subagents 巢狀的深度。對於 Claude 在工作階段中可以產生的 subagents 總數沒有限制。1080兩個限制控制 subagent 使用,每個都有自己的變數:這個限制阻止 Claude 在太多 subagents 執行時產生更多 subagents,[深度限制](#let-subagents-spawn-their-own-subagents) 限制 subagents 巢狀的深度。對於 Claude 在工作階段中可以產生的 subagents 總數沒有限制。

terminal-config.md +68 −68

Details

144 144 

145如果每次按下 Backspace 都會刪除整個單詞,表示您的終端機為純 Backspace 發送 `^H`。設定 [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](https://code.claude.com/docs/zh-TW/env-vars)。Backspace 和 Ctrl+H 隨後將各刪除一個字元。如果在 macOS 或 Linux 上 Ctrl+Backspace 只刪除一個字元,因為您的終端機為其發送 `^H`,請改為將變數設定為 `1`。145如果每次按下 Backspace 都會刪除整個單詞,表示您的終端機為純 Backspace 發送 `^H`。設定 [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](https://code.claude.com/docs/zh-TW/env-vars)。Backspace 和 Ctrl+H 隨後將各刪除一個字元。如果在 macOS 或 Linux 上 Ctrl+Backspace 只刪除一個字元,因為您的終端機為其發送 `^H`,請改為將變數設定為 `1`。

146 146 

147## 配對色彩主題147## 配合色彩主題

148 148 

149使用 `/theme` 指令,或在 `/config` 中的主題選擇器,選擇與您的終端機相符的 Claude Code 主題。選擇自動選項會偵測您終端機的淺色或深色背景,因此主題會在您的終端機跟隨作業系統外觀變更時隨之改變。Claude Code 不會控制終端機本身的色彩配置,該配置由終端機應用程式設定。149使用 `/theme` 命令,或 `/config` 中的主題選擇器,選擇與終端機相符的 Claude Code 主題。選取 auto 選項會偵測終端機的淺色或深色背景,因此每當終端機跟隨作業系統外觀變更時,主題也會隨之變更。Claude Code 不會控制終端機本身的配色方案,該方案由終端機應用程式設定。

150 150 

151若要自訂介面底部顯示的內容,請設定一個[自訂狀態列](https://code.claude.com/docs/zh-TW/statusline.md),顯示目前的模型、工作目錄、Git 分支或其他內容。151若要自訂介面底部顯示的內容,請設定[自訂狀態列](https://code.claude.com/docs/zh-TW/statusline.md),以顯示目前的模型、工作目錄、git 分支或其他脈絡資訊。

152 152 

153### 建立自訂主題153### 建立自訂主題

154 154 

155除了內建預設值外,`/theme` 會列出您已定義的任何自訂主題,以及由已安裝的[外掛程式](https://code.claude.com/docs/zh-TW/plugins/components.md#themes-and-output-styles)貢獻的任何主題。選擇清單末尾的\*\*新增自訂主題…\*\*以互動方式建立一個:您命名主題,然後選擇要覆寫的個別色彩權杖。當自訂主題被反白顯示時,按 `Ctrl+E` 以編輯它。155除了內建的預設主題之外,`/theme` 還會列出您已定義的任何自訂主題,以及已安裝的[外掛](https://code.claude.com/docs/zh-TW/plugins/components.md#themes-and-output-styles)所提供的任何主題。選取清單最後的 **New custom theme…** 即可以互動方式建立主題:先為主題命名,再挑選要覆寫的個別色彩 token。在自訂主題反白顯示時按下 `Ctrl+E` 即可編輯該主題。

156 156 

157每個自訂主題都是 `~/.claude/themes/` 中的 JSON 檔案。不含 `.json` 副檔名的檔案名稱是主題的 slug,選擇主題會將 `custom:<slug>` 儲存為您的主題偏好設定。該檔案有三個選用欄位:157每個自訂主題都是 `~/.claude/themes/` 中的一個 JSON 檔案。不含 `.json` 副檔名的檔名即為主題的 slug,選取該主題時會將 `custom:<slug>` 儲存為您的主題偏好設定。該檔案有三個選用欄位:

158 158 

159| 欄位 | 類型 | 說明 |159| 欄位 | 類型 | 說明 |

160| :- | :- | :- |160| :- | :- | :- |

161| `name` | string | 在 `/theme` 中顯示的標籤。預設為檔案名稱 slug |161| `name` | string | 在 `/theme` 中顯示的標籤。預設為檔名 slug |

162| `base` | string | 主題開始的內建預設值:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi` 或 `light-ansi`。預設為 `dark` |162| `base` | string | 主題所依據的內建預設主題:`dark`、`light`、`dark-daltonized`、`light-daltonized`、`dark-ansi` 或 `light-ansi`。預設為 `dark` |

163| `overrides` | object | 色彩權杖名稱到色彩值的對應。此處未列出的權杖會回退到基礎預設值 |163| `overrides` | object | 色彩 token 名稱與色彩值的對應表。未列於此處的 token 會沿用基礎預設主題 |

164 164 

165色彩值接受 `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)` 或 `ansi:<name>`,其中 `<name>` 是 16 個標準 ANSI 色彩名稱之一,例如 `red` 或 `cyanBright`。未知的權杖和無效的色彩值會被忽略,因此打字錯誤無法破壞轉譯。165色彩值接受 `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)` 或 `ansi:<name>`,其中 `<name>` 為 16 種標準 ANSI 色彩名稱之一,例如 `red` 或 `cyanBright`。未知的 token 與無效的色彩值會被忽略,因此拼寫錯誤不會破壞畫面呈現。

166 166 

167以下範例定義了一個保留深色預設值但重新著色提示符號重點、錯誤文字和成功文字的主題:167以下範例定義了一個主題,保留 dark 預設主題,但重新設定提示詞強調色、錯誤文字與成功文字的顏色:

168 168 

169```json ~/.claude/themes/dracula.json theme={null}169```json ~/.claude/themes/dracula.json theme={null}

170{170{


178}178}

179```179```

180 180 

181Claude Code 監視 `~/.claude/themes/` 並在檔案被新增或變更時重新載入,因此在您的編輯器中所做的編輯會在執行中的工作階段中套用,無需重新啟動。如果 Claude Code 啟動時 `~/.claude/themes/` 資料夾本身不存在,請在建立第一個主題檔案後重新啟動一次。之後,變更會在無需重新啟動的情況下套用。181Claude Code 會監看 `~/.claude/themes/`,並在新增或變更檔案時重新載入,因此在編輯器中所做的修改會套用至執行中的工作階段,無需重新啟動。如果 Claude Code 啟動時 `~/.claude/themes/` 資料夾本身尚不存在,請在建立第一個主題檔案後重新啟動一次。此後,變更無需重新啟動即可套用。

182 182 

183下面的參考涵蓋了您可以在 `overrides` 中設定的權杖。`/theme` 中的互動式編輯器顯示相同的權杖,並提供即時預覽,加上一些單一用途的重點,例如此處省略的上線畫面色彩。183以下參考資料涵蓋可在 `overrides` 中設定的 token。`/theme` 中的互動式編輯器會以即時預覽顯示相同的 token,另外還包含一些此處省略的單一用途強調色,例如新手引導畫面的色彩。

184 184 

185> **色彩權杖參考**185> **色彩 token 參考**

186>186>

187> 以下範例結合了下列幾個群組中的權杖:品牌重點、計畫模式邊框、差異背景和訊息背景。187> 以下範例結合了下列數個群組中的 token:品牌強調色、plan mode 邊框、差異背景,以及訊息背景。

188>188>

189> ```json ~/.claude/themes/midnight.json theme={null}189> ```json ~/.claude/themes/midnight.json theme={null}

190> {190> {


200> }200> }

201> ```201> ```

202>202>

203> #### 文字和重點色彩203> #### 文字與強調色

204>204>

205> 控制整個介面中使用的主要品牌重點和前景文字陰影。205> 控制整個介面中使用的主要品牌強調色與前景文字色調。

206>206>

207> | 權杖 | 控制項 |207> | Token | 控制項目 |

208> | :- | :- |208> | :- | :- |

209> | `claude` | 主要品牌重點,用於微調器和助理標籤 |209> | `claude` | 主要品牌強調色,用於載入指示器與助理標籤 |

210> | `text` | 預設前景文字 |210> | `text` | 預設前景文字 |

211> | `inverseText` | 繪製在彩色背景上的文字,例如狀態徽章 |211> | `inverseText` | 繪製於彩色背景上的文字,例如狀態徽章 |

212> | `inactive` | 次要文字,例如提示、時間戳記和停用的項目 |212> | `inactive` | 次要文字,例如提示、時間戳記與停用的項目 |

213> | `subtle` | 淡色邊框和去強調的次要文字 |213> | `subtle` | 淡色邊框與弱化的次要文字 |

214> | `suggestion` | 自動完成建議和選擇器中的選擇反白顯示 |214> | `suggestion` | 自動完成建議與選擇器中的選取反白 |

215> | `permission` | 對話方塊邊框,包括權限提示和選擇器 |215> | `permission` | 對話框邊框,包括權限提示與選擇器 |

216> | `remember` | 記憶和 `CLAUDE.md` 指示器 |216> | `remember` | 記憶與 `CLAUDE.md` 指示器 |

217>217>

218> #### 狀態色彩218> #### 狀態色彩

219>219>

220> 在訊息和指示器中發出成功、失敗和警告狀態的信號。220> 在訊息與指示器中表示成功、失敗與警告狀態。

221>221>

222> | 權杖 | 控制項 |222> | Token | 控制項目 |

223> | :- | :- |223> | :- | :- |

224> | `success` | 成功訊息和通過的檢查 |224> | `success` | 成功訊息與通過的檢查 |

225> | `error` | 錯誤訊息和失敗 |225> | `error` | 錯誤訊息與失敗 |

226> | `warning` | 警告、注意訊息和自動模式邊框 |226> | `warning` | 警告、注意訊息,以及自動模式指示器 |

227> | `merged` | 合併的提取要求狀態 |227> | `merged` | 已合併的 pull request 狀態 |

228>228>

229> #### 輸入方塊和模式指示器229> #### 輸入框與模式指示器

230>230>

231> 設定輸入方塊邊框色彩和在權限模式或指示器啟用時顯示的重點。231> 設定輸入框邊框色彩,以及權限模式或指示器啟用時顯示的強調色。

232>232>

233> | 權杖 | 控制項 |233> | Token | 控制項目 |

234> | :- | :- |234> | :- | :- |

235> | `promptBorder` | 手動模式中的輸入方塊邊框 |235> | `promptBorder` | 輸入框邊框 |

236> | `planMode` | Plan Mode 重點和邊框 |236> | `planMode` | Plan mode 強調色、plan 訊息,以及 plan mode 對話框 |

237> | `autoAccept` | 接受編輯模式重點和邊框 |237> | `autoAccept` | 接受編輯模式強調色 |

238> | `bashBorder` | 輸入 `!` shell 指令時的輸入方塊邊框 |238> | `bashBorder` | 輸入 `!` shell 命令時的輸入框邊框 |

239> | `ide` | IDE 連線指示器 |239> | `ide` | IDE 連線指示器 |

240> | `fastMode` | 快速模式指示器 |240> | `fastMode` | 快速模式指示器 |

241> | `effortUltra` | 啟用 [ultracode](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) 時輸入方塊邊框上的 `ultracode` 標籤。您對此色彩的覆寫在 Claude Code v2.1.239 或更新版本上生效 |241> | `effortUltra` | [ultracode](https://code.claude.com/docs/zh-TW/model-config.md#adjust-effort-level) 開啟時輸入框邊框上的 `ultracode` 標籤。您對此色彩的覆寫在 Claude Code v2.1.239 或更新版本中生效 |

242>242>

243> #### 差異轉譯243> #### 差異呈現

244>244>

245> 在檔案編輯和審查中著色新增和移除的程式碼。245> 為檔案編輯與審查中新增和移除的程式碼上色。

246>246>

247> | 權杖 | 控制項 |247> | Token | 控制項目 |

248> | :- | :- |248> | :- | :- |

249> | `diffAdded` | 新增行的背景 |249> | `diffAdded` | 新增行的背景 |

250> | `diffRemoved` | 移除行的背景 |250> | `diffRemoved` | 移除行的背景 |

251> | `diffAddedDimmed` | 您拒絕編輯後顯示的淡化差異中新增行的背景 |251> | `diffAddedDimmed` | 拒絕編輯後顯示的淡化差異中新增行的背景 |

252> | `diffRemovedDimmed` | 您拒絕編輯後顯示的淡化差異中移除行的背景 |252> | `diffRemovedDimmed` | 拒絕編輯後顯示的淡化差異中移除行的背景 |

253> | `diffAddedWord` | 新增行內的字級反白顯示 |253> | `diffAddedWord` | 新增行內的字詞層級反白 |

254> | `diffRemovedWord` | 移除行內的字級反白顯示 |254> | `diffRemovedWord` | 移除行內的字詞層級反白 |

255>255>

256> #### 全螢幕模式256> #### 全螢幕模式

257>257>

258> Claude Code 僅在[全螢幕轉譯模式](https://code.claude.com/docs/zh-TW/fullscreen.md)中使用 `userMessageBackgroundHover`、`selectionBg` 和 `composerSidebarBackground`。它在預設和全螢幕轉譯器中都會繪製 `userMessageBackground`、`bashMessageBackgroundColor` 和 `memoryBackgroundColor`。258> Claude Code 僅在[全螢幕呈現模式](https://code.claude.com/docs/zh-TW/fullscreen.md)中使用 `userMessageBackgroundHover`、`selectionBg` 與 `composerSidebarBackground`。它在預設與全螢幕呈現器中都會繪製 `userMessageBackground`、`bashMessageBackgroundColor` 與 `memoryBackgroundColor`。

259>259>

260> | 權杖 | 控制項 |260> | Token | 控制項目 |

261> | :- | :- |261> | :- | :- |

262> | `userMessageBackground` | 文字記錄中您的訊息後面的背景 |262> | `userMessageBackground` | 逐字稿中您的訊息後方的背景 |

263> | `userMessageBackgroundHover` | 訊息被懸停或展開時後面的背景 |263> | `userMessageBackgroundHover` | 訊息在滑鼠停留或展開時後方的背景 |

264> | `bashMessageBackgroundColor` | 文字記錄中 `!` shell 指令項目後面的背景 |264> | `bashMessageBackgroundColor` | 逐字稿中 `!` shell 命令項目後方的背景 |

265> | `memoryBackgroundColor` | 文字記錄中 `#` 記憶項目後面的背景 |265> | `memoryBackgroundColor` | 逐字稿中 `#` 記憶項目後方的背景 |

266> | `selectionBg` | 使用滑鼠選取的文字背景 |266> | `selectionBg` | 以滑鼠選取的文字背景 |

267> | `composerSidebarBackground` | 對話旁面板的背景,例如[差異面板](https://code.claude.com/docs/zh-TW/fullscreen.md#watch-your-changes-in-the-diff-panel)或 [mod 的窗格](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md) |267> | `composerSidebarBackground` | 對話旁面板的背景,例如[差異面板](https://code.claude.com/docs/zh-TW/fullscreen.md#watch-your-changes-in-the-diff-panel)或 [mod 的窗格](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md) |

268>268>

269> #### 使用量計量和說話者標籤269> #### 用量計量表與發言者標籤

270>270>

271> 調整在 `/usage` 檢視中顯示的列,以及區分您的訊息和 Claude 訊息的標籤。271> 調整 `/usage` 檢視中顯示的長條,以及區分您的訊息與 Claude 訊息的標籤。

272>272>

273> | 權杖 | 控制項 |273> | Token | 控制項目 |

274> | :- | :- |274> | :- | :- |

275> | `rate_limit_fill` | 使用量計量的填充部分 |275> | `rate_limit_fill` | 用量計量表的已填滿部分 |

276> | `rate_limit_empty` | 使用量計量的未填充部分 |276> | `rate_limit_empty` | 用量計量表的未填滿部分 |

277> | `briefLabelYou` | 您訊息上 `You` 標籤的色彩 |277> | `briefLabelYou` | 您的訊息上 `You` 標籤的色彩 |

278> | `briefLabelClaude` | 助理訊息上 `Claude` 標籤的色彩 |278> | `briefLabelClaude` | 助理訊息上 `Claude` 標籤的色彩 |

279>279>

280> #### 微光變體和子代理色彩280> #### 微光變體與 subagent 色彩

281>281>

282> 幾個權杖有配對的微光變體,提供微調器動畫漸層中使用的較淺色彩。如果動畫看起來不相符,請與其基礎權杖一起覆寫微光。282> 數個 token 有配對的微光變體,提供載入指示器動畫漸層中使用的較淺色彩。如果動畫看起來不協調,請連同其基礎 token 一起覆寫微光變體。

283>283>

284> * `claude` 和 `claudeShimmer`284> * `claude` 與 `claudeShimmer`

285> * `warning` 和 `warningShimmer`285> * `warning` 與 `warningShimmer`

286> * `permission` 和 `permissionShimmer`286> * `permission` 與 `permissionShimmer`

287> * `promptBorder` 和 `promptBorderShimmer`287> * `promptBorder` 與 `promptBorderShimmer`

288> * `inactive` 和 `inactiveShimmer`288> * `inactive` 與 `inactiveShimmer`

289> * `fastMode` 和 `fastModeShimmer`289> * `fastMode` 與 `fastModeShimmer`

290>290>

291> 每個[子代理](https://code.claude.com/docs/zh-TW/sub-agents.md)和平行工作都以八個命名色彩之一顯示,以便您可以在文字記錄中區分它們。權杖名稱遵循 `<color>_FOR_SUBAGENTS_ONLY` 的模式,其中 `<color>` 是 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan`。覆寫這些以變更每個命名色彩的外觀。例如,定義中具有 `color: blue` 的子代理使用 `blue_FOR_SUBAGENTS_ONLY` 值繪製。291> 每個 [subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 與平行任務會以八種具名色彩之一顯示,讓您能在逐字稿中區分它們。Token 名稱遵循 `<color>_FOR_SUBAGENTS_ONLY` 模式,其中 `<color>` 為 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan`。覆寫這些 token 即可變更各具名色彩的外觀。例如,定義中含有 `color: blue` 的 subagent 會使用 `blue_FOR_SUBAGENTS_ONLY` 的值繪製。

292>292>

293> Claude Code 在提示輸入中使用七色彩虹漸層轉譯 [`ultrathink`](https://code.claude.com/docs/zh-TW/model-config#use-ultrathink-for-one-off-deep-reasoning) 關鍵字。權杖名稱遵循 `rainbow_<color>` 和 `rainbow_<color>_shimmer` 的模式,其中 `<color>` 是 `red`、`orange`、`yellow`、`green`、`blue`、`indigo` 或 `violet`。293> 當 [`ultrathink`](https://code.claude.com/docs/zh-TW/model-config#use-ultrathink-for-one-off-deep-reasoning) 可以提高某個回合的投入程度時,Claude Code 會以七色彩虹漸層呈現提示詞輸入中的該字詞。Token 名稱遵循 `rainbow_<color>` 與 `rainbow_<color>_shimmer` 模式,其中 `<color>` 為 `red`、`orange`、`yellow`、`green`、`blue`、`indigo` 或 `violet`。

294 294 

295## 切換至全螢幕渲染295## 切換至全螢幕渲染

296 296 

ultrareview.md +4 −2

Details

85 85 

86### 用純文字傳遞請求86### 用純文字傳遞請求

87 87 

88在 Claude Code v2.1.218 或更新版本上,您也可以用純文字描述您正在進行的工作:88您也可以用純文字描述您正在進行的工作:

89 89 

90```text theme={null}90```text theme={null}

91/code-review ultra check my auth changes91/code-review ultra check my auth changes


159 159 

160當您執行該子命令時,即表示您同意整個儲存庫備援以及計費和條款提示,因此執行不會停下來要求確認。您自己執行它才算是同意。當 Claude 改為為您執行該子命令時(例如透過 Bash 工具),Claude Code 會拒絕整個儲存庫審查。160當您執行該子命令時,即表示您同意整個儲存庫備援以及計費和條款提示,因此執行不會停下來要求確認。您自己執行它才算是同意。當 Claude 改為為您執行該子命令時(例如透過 Bash 工具),Claude Code 會拒絕整個儲存庫審查。

161 161 

162`claude -p '/code-review ultra'` 無法取得發現結果,因此請在指令碼中使用 `claude ultrareview`。`-p` 執行會啟動雲端審查,並在不等待其完成的情況下結束。當審查會計費用量點數時,`-p` 執行會停止而不啟動審查。在 v2.1.218 之前,非互動工作階段中的 `/code-review ultra` 執行本機審查。162> [!NOTE]

163>

164> `claude -p '/code-review ultra'` 無法取得發現結果,因此請在指令碼中使用 `claude ultrareview`。`-p` 執行會啟動雲端審查,並在不等待其完成的情況下結束。當審查會計費用量點數時,`-p` 執行會停止而不啟動審查。

163 165 

164| 旗標 | 說明 |166| 旗標 | 說明 |

165| - | - |167| - | - |

Details

182* 您也可以點擊工作階段標題列中的 **Changes**,或標題列 **⋮** 選單中的該項目。182* 您也可以點擊工作階段標題列中的 **Changes**,或標題列 **⋮** 選單中的該項目。

183* 若要在面板隱藏時顯示它,請點擊工作階段標題列中的 **Show session rail** 圖示,或標題列 **⋮** 選單中的該項目。183* 若要在面板隱藏時顯示它,請點擊工作階段標題列中的 **Show session rail** 圖示,或標題列 **⋮** 選單中的該項目。

184 184 

185差異預設會將工作階段的更改與其基礎分支進行比較。若要與不同的分支進行比較,請選擇 **Compare against** 並選擇一個。185差異預設會將工作階段的更改與其基礎分支進行比較。若要與不同的分支進行比較,請選擇 **Compare against** 並選擇一個。與基礎分支比較時,差異可能會[遺漏尚未推送的更改](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view)。

186 186 

187**2. 留下內聯評論**187**2. 留下內聯評論**

188 188 

189選擇差異中的任何行,輸入您的反饋,然後按 Enter。評論會排隊直到您發送下一條訊息,然後它們會與其捆綁。Claude 看到「在 `src/auth.ts:47`,不要在這裡捕捉錯誤」以及您的主要指令,因此您無需描述問題所在。189將滑鼠懸停在差異中的某一行上,然後點擊其行號旁出現的 **+** 以開啟評論框,接著輸入您的反饋並按 Enter。評論會排隊直到您發送下一條訊息,然後它們會與其捆綁。Claude 看到「在 `src/auth.ts:47`,不要在這裡捕捉錯誤」以及您的主要指令,因此您無需描述問題所在。

190 190 

191**3. 建立 pull request**191**3. 建立 pull request**

192 192 

workflows.md +5 −9

Details

155* 工作階段的[並行子代理程式限制](https://code.claude.com/docs/zh-TW/sub-agents.md#concurrent-subagent-limit)不會對 Claude 使用代理程式工具產生的子代理程式強制執行155* 工作階段的[並行子代理程式限制](https://code.claude.com/docs/zh-TW/sub-agents.md#concurrent-subagent-limit)不會對 Claude 使用代理程式工具產生的子代理程式強制執行

156* 在自動權限模式中,您不會被要求[批准第一個工作流程啟動](#approve-the-plan-before-it-runs)156* 在自動權限模式中,您不會被要求[批准第一個工作流程啟動](#approve-the-plan-before-it-runs)

157 157 

158`/effort ultracode` 持續整個目前工作階段;若要讓每個工作階段都以它開始,請設定 [`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 設定。當您返回例行工作時,使用 `/effort ultracode off` 關閉它。`/effort` 滑塊僅在 [ultracode 可用時](https://code.claude.com/docs/zh-TW/model-config.md#when-ultracode-is-available)提供切換。158`/effort ultracode` 在目前工作階段期間有效;若要讓每個工作階段都以它開始,請設定 [`ultracode`](https://code.claude.com/docs/zh-TW/settings-reference#ultracode) 設定。當您回到例行工作時,使用 `/effort ultracode off` 關閉它。`/effort` 滑桿僅在 [ultracode 可用時](https://code.claude.com/docs/zh-TW/model-config.md#when-ultracode-is-available)提供此開關。在 v2.1.284 之前,`/effort ultracode` 會將工作階段設定為 `xhigh`,而 `/effort ultracode off` 會失敗並顯示 `Invalid argument`。

159 159 

160### 在執行前批准計畫160### 在執行前批准計畫

161 161 


198* 您專案中的 `.claude/workflows/`:與克隆儲存庫的每個人共享198* 您專案中的 `.claude/workflows/`:與克隆儲存庫的每個人共享

199* 您主目錄中的 `~/.claude/workflows/`:在每個專案中可用,僅對您可見。如果您設定了 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars),此位置是該路徑下的 `workflows/` 目錄。199* 您主目錄中的 `~/.claude/workflows/`:在每個專案中可用,僅對您可見。如果您設定了 [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars),此位置是該路徑下的 `workflows/` 目錄。

200 200 

201保存對話會顯示個人位置的已解析路徑。201保存對話框會顯示個人位置的已解析路徑。按 Enter 保存。工作流程在未來工作階段中從任一位置作為 `/<name>` 執行。

202 202 

203按 Enter 保存。工作流程在未來工作階段中從任一位置作為 `/<name>` 執行。203Claude Code 在寫入前檢查保存位置是否有符號連結,並顯示錯誤而不是透過符號連結寫入:

204 

205Claude Code 在寫入前檢查保存位置是否有符號連結,並顯示錯誤而不是透過符號連結寫入。它檢查的內容取決於您保存的位置:

206 204 

207* 專案位置:如果 `.claude`、`.claude/workflows` 或目標檔案是符號連結,Claude Code 會拒絕。205* 專案位置:如果 `.claude`、`.claude/workflows` 或目標檔案是符號連結,Claude Code 會拒絕。

208* 個人位置:Claude Code 僅在目標檔案本身是符號連結時拒絕,因此由 dotfiles 工具管理的 `~/.claude` 目錄仍然有效。206* 個人位置:Claude Code 僅在目標檔案本身是符號連結時拒絕,因此由 dotfiles 工具管理的 `~/.claude` 目錄仍然有效。

209 207 

210在 v2.1.216 之前,Claude Code 跟隨連結,這可能會將檔案放在您選擇的位置之外。

211 

212在具有多個 `.claude/` 目錄的 monorepo 中,您可以將工作流程保留在它們適用的套件旁邊。保存到專案位置會寫入您的工作目錄和儲存庫根目錄之間已存在的最接近的 `.claude/workflows/` 目錄,或如果尚不存在,則寫入儲存庫根目錄。專案工作流程也會從該路徑沿著的每個 `.claude/workflows/` 載入,當多個定義相同名稱時,Claude Code 執行最接近工作目錄的那個。208在具有多個 `.claude/` 目錄的 monorepo 中,您可以將工作流程保留在它們適用的套件旁邊。保存到專案位置會寫入您的工作目錄和儲存庫根目錄之間已存在的最接近的 `.claude/workflows/` 目錄,或如果尚不存在,則寫入儲存庫根目錄。專案工作流程也會從該路徑沿著的每個 `.claude/workflows/` 載入,當多個定義相同名稱時,Claude Code 執行最接近工作目錄的那個。

213 209 

214如果專案工作流程和個人工作流程共享名稱,則執行專案工作流程。210如果專案工作流程和個人工作流程共享名稱,則執行專案工作流程。


469| `medium` | 少於 10 個代理 |465| `medium` | 少於 10 個代理 |

470| `large` | 少於 50 個代理 |466| `large` | 少於 50 個代理 |

471 467 

472預設值為 `medium`,或當您使用 Claude Code v2.1.271 或更新版本登入 Pro 方案時為 `small`。在您選擇值之前,`/config` 列會將值標記為預設值,工作流程的 `Running in background` 列會命名生效的大小。需要 Claude Code v2.1.219 或更新版本;較早版本預設為 `unrestricted`。468預設值為 `medium`,或當您使用 Claude Code v2.1.271 或更新版本登入 Pro 方案時為 `small`。在您選擇值之前,`/config` 列會將值標記為預設值,工作流程的 `Running in background` 列會指出生效的大小。

473 469 

474要變更指南,在 `/config` 中為 Dynamic workflow size 設定選擇一個值,或執行 `/config workflowSizeGuideline=small`。在 v2.1.219 及更新版本上,您也可以在任何設定檔中設定 [`workflowSizeGuideline` 鍵](https://code.claude.com/docs/zh-TW/settings-reference#workflowsizeguideline);該值優先於 `/config`,而當設定檔提供一個時,Claude Code 會隱藏 `/config` 列。470要變更指南,請在 `/config` 中為 Dynamic workflow size 設定選擇一個值,或執行 `/config workflowSizeGuideline=small`。您也可以在任何設定檔中設定 [`workflowSizeGuideline` 鍵](https://code.claude.com/docs/zh-TW/settings-reference#workflowsizeguideline);該值優先於 `/config`,而當設定檔提供該值時,Claude Code 會隱藏 `/config` 列。

475 471 

476變更在下一個提示時生效。[執行時間代理上限](#behavior-and-limits)仍然適用,無論設定如何。472變更在下一個提示時生效。[執行時間代理上限](#behavior-and-limits)仍然適用,無論設定如何。

477 473 

worktrees.md +21 −9

Details

43 43 

44您也可以在會話期間要求 Claude「在 worktree 中工作」,它會使用 [`EnterWorktree`](https://code.claude.com/docs/zh-TW/tools-reference) 工具建立一個。進入 worktree 後,Claude 可以透過呼叫 `EnterWorktree` 並指定目標路徑,直接切換到 `.claude/worktrees/` 下的另一個 worktree;前一個 worktree 保持在磁碟上未被觸及。44您也可以在會話期間要求 Claude「在 worktree 中工作」,它會使用 [`EnterWorktree`](https://code.claude.com/docs/zh-TW/tools-reference) 工具建立一個。進入 worktree 後,Claude 可以透過呼叫 `EnterWorktree` 並指定目標路徑,直接切換到 `.claude/worktrees/` 下的另一個 worktree;前一個 worktree 保持在磁碟上未被觸及。

45 45 

46當 Claude 進入儲存庫的 `.claude/worktrees/` 目錄外的路徑時,Claude Code 會先要求您的批准,因為該移動會將會話的工作目錄、寫入存取權限和專案配置(例如 `CLAUDE.md` 和設定)帶到該位置。`EnterWorktree` [權限規則](https://code.claude.com/docs/zh-TW/permissions.md)或選擇「不再詢問」不會抑制此提示;只有 `bypassPermissions` 模式會跳過它。在 v2.1.206 之前,Claude 可以進入任何現有的 worktree 路徑而無需詢問。46當 Claude 進入儲存庫的 `.claude/worktrees/` 目錄外的路徑時,Claude Code 會先要求您的核准。該移動會將工作階段的工作目錄、寫入存取權限和專案設定(例如 `CLAUDE.md` 和設定)帶到該位置。`EnterWorktree` [權限規則](https://code.claude.com/docs/zh-TW/permissions.md)或選擇「不再詢問」不會抑制此提示;只有 `bypassPermissions` 模式會跳過它。

47 47 

48> [!NOTE]48> [!NOTE]

49>49>


63 63 

64使用 `-p` 的非互動式執行沒有退出提示,因此 Claude 不會清理它們的 worktrees,Claude Code 會在建立時對每個 worktree 保留它所取得的鎖定,直到稍後會話的[陳舊鎖定掃描](#clean-up-subagent-and-background-session-worktrees)釋放它。要移除一個,請執行 `git worktree remove`;如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。64使用 `-p` 的非互動式執行沒有退出提示,因此 Claude 不會清理它們的 worktrees,Claude Code 會在建立時對每個 worktree 保留它所取得的鎖定,直到稍後會話的[陳舊鎖定掃描](#clean-up-subagent-and-background-session-worktrees)釋放它。要移除一個,請執行 `git worktree remove`;如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。

65 65 

66在 Windows 上,移除 worktree 不會刪除其外的檔案。如果 worktree 內的資料夾是指向其他地方的連結(例如 NTFS 連接點或目錄符號連結),Claude Code 只會刪除連結並保留它指向的資料夾。在 v2.1.205 之前,移除具有嵌套在子目錄中的連結的 worktree 可能會刪除它指向的資料夾。66在 Windows 上,移除 worktree 不會刪除其外的檔案。如果 worktree 內的資料夾是指向其他地方的連結(例如 NTFS 連接點或目錄符號連結),Claude Code 只會刪除連結。

67 67 

68## 恢復 worktree 會話68## 恢復 worktree 會話

69 69 


81>81>

82> 在 v2.1.212 之前,非互動式恢復停留在啟動目錄中,`ExitWorktree` 報告沒有活動的 worktree 會話可退出。82> 在 v2.1.212 之前,非互動式恢復停留在啟動目錄中,`ExitWorktree` 報告沒有活動的 worktree 會話可退出。

83 83 

84當 Claude 進入或退出 Claude Code 使用 git 建立的 worktree 時,記錄會跟隨:Claude Code 會在會話的新工作目錄下記錄會話,與 [`/cd`](https://code.claude.com/docs/zh-TW/commands) 的方式相同,因此 `/desktop` 和 `--resume` 會在那裡找到它。退出會以相同的方式將其移回。由 [`WorktreeCreate` hook](#non-git-version-control) 建立的 worktree 會在啟動目錄保留其記錄。需要 Claude Code v2.1.198 或更新版本。84當 Claude 進入或退出 Claude Code 使用 git 建立的 worktree 時,逐字稿會跟隨。Claude Code 會在工作階段的新工作目錄下記錄工作階段,與 [`/cd`](https://code.claude.com/docs/zh-TW/commands) 的方式相同,因此 `/desktop` 和 `--resume` 會在那裡找到它。退出會以相同的方式將其移回。由 [`WorktreeCreate` hook](#non-git-version-control) 建立的 worktree 會在啟動目錄保留其逐字稿。

85 85 

86## Claude Code 如何強制隔離86## Claude Code 如何強制隔離

87 87 


139 139 

140Claude Code 會將標記寫入它使用 git 建立的每個 worktree 的 git 中繼資料中,掃描會保留任何沒有標記的 worktree,包括 [`WorktreeCreate` hook](#non-git-version-control) 建立的 worktree。140Claude Code 會將標記寫入它使用 git 建立的每個 worktree 的 git 中繼資料中,掃描會保留任何沒有標記的 worktree,包括 [`WorktreeCreate` hook](#non-git-version-control) 建立的 worktree。

141 141 

142#### Worktree 鎖定與手動移除

143 

142當代理正在執行時,Claude Code 會在其 worktree 上執行 `git worktree lock`,以便並行清理無法將其移除,並在代理完成時釋放鎖定。Claude Code 對為背景會話建立的 worktree 執行相同的鎖定,同時會話執行,因此掃描會保留 worktree 並且 `git worktree remove` 拒絕移除它。144當代理正在執行時,Claude Code 會在其 worktree 上執行 `git worktree lock`,以便並行清理無法將其移除,並在代理完成時釋放鎖定。Claude Code 對為背景會話建立的 worktree 執行相同的鎖定,同時會話執行,因此掃描會保留 worktree 並且 `git worktree remove` 拒絕移除它。

143 145 

144掃描也會釋放 Claude Code 為其程序已退出的會話設定的鎖定,因此被殺死的背景會話不會永久鎖定其 worktree。掃描永遠不會釋放您自己使用 `git worktree lock` 設定的鎖定。在 v2.1.210 之前,被殺死的會話留下的鎖定會保留在原位,直到您執行 `git worktree unlock`。146掃描也會釋放 Claude Code 為其程序已結束的工作階段設定的鎖定,因此被終止的背景工作階段不會永久鎖定其 worktree。掃描永遠不會釋放您自己使用 `git worktree lock` 設定的鎖定。

145 147 

146要清理掃描保留的 worktree,請執行 `git worktree remove`,如果 worktree 有未提交的變更或未追蹤的檔案,請新增 `--force`。如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。148要清理掃描保留的 worktree,請執行 `git worktree remove`,如果 worktree 有未提交的變更或未追蹤的檔案,請新增 `--force`。如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。

147 149 


158 160 

159您無法將 `worktree.baseRef` 設定為分支名稱。要從特定的現有分支啟動 worktree,請[直接使用 git 建立它](#manage-worktrees-manually)。161您無法將 `worktree.baseRef` 設定為分支名稱。要從特定的現有分支啟動 worktree,請[直接使用 git 建立它](#manage-worktrees-manually)。

160 162 

161對於 `"fresh"` 基礎,Claude Code 會保持 `origin/HEAD` 最新:當儲存庫在過去 24 小時內未被提取時,它會提取預設分支(上限為五秒),如果提取失敗,則使用本地快取的參考。此提取絕不會等待您在終端機中輸入,因此當 git 或 ssh 需要詢問密碼、金鑰密語或確認新的 SSH 主機時,也會視為提取失敗。如果未配置遠端,或 `origin/HEAD` 未在本地快取且無法提取,worktree 會回退到您目前的本地 `HEAD`。在 v2.1.208 之前,新 worktree 使用已在本地快取的任何 `origin/HEAD`。163對於 `"fresh"` 基礎,Claude Code 會保持 `origin/HEAD` 最新:

164 

165* 當儲存庫在過去 24 小時內未被提取時,它會提取預設分支(上限為五秒),如果提取失敗,則使用本地快取的參考。

166* 此提取絕不會等待您在終端機中輸入。當 git 或 ssh 需要詢問密碼、金鑰密語或確認新的 SSH 主機時,也會視為提取失敗。

167* 如果未設定遠端,或 `origin/HEAD` 未在本地快取且無法提取,worktree 會回退到您目前的本地 `HEAD`。

162 168 

163此範例使每個新 worktree 從您目前的工作分支:169此範例使每個新 worktree 從您目前的工作分支:

164 170 


225* `worktree.baseRef` 是 `"head"`。231* `worktree.baseRef` 是 `"head"`。

226* 名稱是拉取請求或合併請求參考。232* 名稱是拉取請求或合併請求參考。

227 233 

228在 v2.1.208 之前,當您重複使用名稱時,Claude Code 始終在其舊的頂端重新開啟舊 worktree。

229 

230### 使用 hook 取代 worktree 建立234### 使用 hook 取代 worktree 建立

231 235 

232配置 [`WorktreeCreate` hook](https://code.claude.com/docs/zh-TW/hooks#worktreecreate) 以完全取代預設的 `git worktree` 邏輯,包括將 worktrees 放在 `.claude/worktrees/` 以外的地方。有關完整範例,請參閱[非 git 版本控制](#non-git-version-control)。236配置 [`WorktreeCreate` hook](https://code.claude.com/docs/zh-TW/hooks#worktreecreate) 以完全取代預設的 `git worktree` 邏輯,包括將 worktrees 放在 `.claude/worktrees/` 以外的地方。有關完整範例,請參閱[非 git 版本控制](#non-git-version-control)。


236Worktree 獲得自己的檔案和分支,但它與主要檢出共享以下內容:240Worktree 獲得自己的檔案和分支,但它與主要檢出共享以下內容:

237 241 

238* **儲存庫的 `.git` 目錄**:worktree 中的 git 命令寫入主儲存庫的共享 `.git` 目錄,[沙箱化](https://code.claude.com/docs/zh-TW/sandboxing.md#filesystem-isolation)允許這些寫入,因此 `git commit` 等命令可以從啟用沙箱的 worktree 內部工作。242* **儲存庫的 `.git` 目錄**:worktree 中的 git 命令寫入主儲存庫的共享 `.git` 目錄,[沙箱化](https://code.claude.com/docs/zh-TW/sandboxing.md#filesystem-isolation)允許這些寫入,因此 `git commit` 等命令可以從啟用沙箱的 worktree 內部工作。

239* **外掛程式**:從主要檢出在[專案範圍](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-where-a-plugin-is-enabled)安裝的外掛程式也會在同一儲存庫的 worktrees 中載入,因此您不需要為每個 worktree 重新安裝它們。需要 Claude Code v2.1.200 或更新版本。243* **外掛程式**:從主要檢出在[專案範圍](https://code.claude.com/docs/zh-TW/plugins/loading.md#find-where-a-plugin-is-enabled)安裝的外掛程式也會在同一儲存庫的 worktrees 中載入,因此您不需要為每個 worktree 重新安裝它們。

240* **權限批准**:在 worktree 會話中為 Bash 命令選擇「是,不再詢問」會將規則儲存到主要檢出的 `.claude/settings.local.json`,因此它適用於主要檢出和儲存庫的每個其他 worktree,並在 worktree 移除後存活。在 Windows 和 Claude Code [不使用儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)的其他情況下,規則會保留在該 worktree 中。在 v2.1.211 之前,在 worktree 中授予的批准被儲存在該 worktree 內,不適用於其他地方,並在 worktree 移除時丟失。請參閱[批准的儲存位置](https://code.claude.com/docs/zh-TW/permissions.md#permission-system)。244* **權限核准**:在 worktree 工作階段中為 Bash 命令選擇「是,不再詢問」會將規則儲存到主要檢出的 `.claude/settings.local.json`。該規則適用於主要檢出和儲存庫的每個其他 worktree,並在 worktree 移除後仍會保留。

245 

246 在 Windows 和 Claude Code [不使用儲存庫根目錄](https://code.claude.com/docs/zh-TW/settings.md#where-claude-code-looks-for-each-file)的其他情況下,規則會保留在該 worktree 中。請參閱[核准的儲存位置](https://code.claude.com/docs/zh-TW/permissions.md#permission-system)。

241* **未追蹤的技能、代理程式和命令**:當 worktree 檢出在其根目錄沒有 `.claude/skills` 目錄時(例如因為您的 `.claude/skills` 被 gitignored),Claude Code 會在 worktree 會話中載入主要檢出的[專案技能](https://code.claude.com/docs/zh-TW/skills.md#where-skills-live)。在具有自己的 `.claude/skills` 目錄的 worktree 中,只會載入該副本。247* **未追蹤的技能、代理程式和命令**:當 worktree 檢出在其根目錄沒有 `.claude/skills` 目錄時(例如因為您的 `.claude/skills` 被 gitignored),Claude Code 會在 worktree 會話中載入主要檢出的[專案技能](https://code.claude.com/docs/zh-TW/skills.md#where-skills-live)。在具有自己的 `.claude/skills` 目錄的 worktree 中,只會載入該副本。

242 248 

243 相同的讀取涵蓋 `.claude/agents` 和 `.claude/commands`。對於技能,讀取需要 Claude Code v2.1.277 或更新版本。249 相同的讀取涵蓋 `.claude/agents` 和 `.claude/commands`。對於技能,讀取需要 Claude Code v2.1.277 或更新版本。


322 328 

323當 `.claude`、`.claude/worktrees` 或 worktree 目錄本身是符號連結時,Claude Code 拒絕建立 worktree,錯誤會命名符號連結路徑。移除符號連結並重試。在 v2.1.212 之前,如果儲存庫已在其中一個路徑上包含已提交的符號連結,worktree 建立會跟隨它,並可能在儲存庫外建立檔案。329當 `.claude`、`.claude/worktrees` 或 worktree 目錄本身是符號連結時,Claude Code 拒絕建立 worktree,錯誤會命名符號連結路徑。移除符號連結並重試。在 v2.1.212 之前,如果儲存庫已在其中一個路徑上包含已提交的符號連結,worktree 建立會跟隨它,並可能在儲存庫外建立檔案。

324 330 

331### Claude Code 建立的 worktree 包含被取代物件的原始內容

332 

333如果您的儲存庫使用 [`git replace`](https://git-scm.com/docs/git-replace),Claude Code 建立的 worktree 中的檔案會保有原始物件的內容,而不是您的 `refs/replace/` 項目所指定的取代內容。Claude Code 以 `GIT_NO_REPLACE_OBJECTS=1` 執行檢出 worktree 檔案的 git 命令,並忽略您為該變數匯出的任何值。

334 

335若要取得取代後的內容,請使用 `git worktree add` [自行建立 worktree](#manage-worktrees-manually),並在其中啟動 Claude Code。

336 

325### Git LFS 檔案是 Claude Code 建立的 worktree 中的指標檔案337### Git LFS 檔案是 Claude Code 建立的 worktree 中的指標檔案

326 338 

327如果您使用 `git lfs install --local` 設定 [Git LFS](https://git-lfs.com),Claude Code 建立的 worktree 包含 LFS 指標檔案而不是真實檔案。`--local` 旗標將 LFS 篩選寫入儲存庫自己的 `.git/config` 而不是您的全域 git 配置。純粹的 `git lfs install` 寫入您的全域配置,不受影響。相同的適用於儲存庫自己的配置中定義的任何其他[篩選驅動程式](https://git-scm.com/docs/gitattributes)。339如果您使用 `git lfs install --local` 設定 [Git LFS](https://git-lfs.com),Claude Code 建立的 worktree 包含 LFS 指標檔案而不是真實檔案。`--local` 旗標將 LFS 篩選寫入儲存庫自己的 `.git/config` 而不是您的全域 git 配置。純粹的 `git lfs install` 寫入您的全域配置,不受影響。相同的適用於儲存庫自己的配置中定義的任何其他[篩選驅動程式](https://git-scm.com/docs/gitattributes)。