SpyBara
Go Premium

Documentation 2026-05-14 17:02 UTC to 2026-05-15 22:58 UTC

17 files changed +507 −42. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19
Details

46 46 

47 ```python Python theme={null}47 ```python Python theme={null}

48 import asyncio48 import asyncio

49 from claude_agent_sdk import query49 from claude_agent_sdk import query, ClaudeAgentOptions

50 50 

51 51 

52 async def main():52 async def main():

53 async for message in query(53 async for message in query(

54 prompt="Hello",54 prompt="Hello",

55 options={55 options=ClaudeAgentOptions(

56 "plugins": [56 plugins=[

57 {"type": "local", "path": "./my-plugin"},57 {"type": "local", "path": "./my-plugin"},

58 {"type": "local", "path": "/absolute/path/to/another-plugin"},58 {"type": "local", "path": "/absolute/path/to/another-plugin"},

59 ]59 ]

60 },60 ),

61 ):61 ):

62 # Plugin commands, agents, and other features are now available62 # Plugin commands, agents, and other features are now available

63 pass63 pass


93 }93 }

94 })) {94 })) {

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

96 // Check loaded plugins96 // 检查已加载的 plugins

97 console.log("Plugins:", message.plugins);97 console.log("Plugins:", message.plugins);

98 // Example: [{ name: "my-plugin", path: "./my-plugin" }]98 // 示例: [{ name: "my-plugin", path: "./my-plugin" }]

99 99 

100 // Check available commands from plugins100 // 检查来自 plugins 的可用命令

101 console.log("Commands:", message.slash_commands);101 console.log("Commands:", message.slash_commands);

102 // Example: ["/help", "/compact", "my-plugin:custom-command"]102 // 示例: ["/help", "/compact", "my-plugin:custom-command"]

103 }103 }

104 }104 }

105 ```105 ```

106 106 

107 ```python Python theme={null}107 ```python Python theme={null}

108 import asyncio108 import asyncio

109 from claude_agent_sdk import query109 from claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage

110 110 

111 111 

112 async def main():112 async def main():

113 async for message in query(113 async for message in query(

114 prompt="Hello", options={"plugins": [{"type": "local", "path": "./my-plugin"}]}114 prompt="Hello",

115 options=ClaudeAgentOptions(

116 plugins=[{"type": "local", "path": "./my-plugin"}]

117 ),

115 ):118 ):

116 if message.type == "system" and message.subtype == "init":119 if isinstance(message, SystemMessage) and message.subtype == "init":

117 # Check loaded plugins120 # 检查已加载的 plugins

118 print("Plugins:", message.data.get("plugins"))121 print("Plugins:", message.data.get("plugins"))

119 # Example: [{"name": "my-plugin", "path": "./my-plugin"}]122 # 示例: [{"name": "my-plugin", "path": "./my-plugin"}]

120 123 

121 # Check available commands from plugins124 # 检查来自 plugins 的可用命令

122 print("Commands:", message.data.get("slash_commands"))125 print("Commands:", message.data.get("slash_commands"))

123 # Example: ["/help", "/compact", "my-plugin:custom-command"]126 # 示例: ["/help", "/compact", "my-plugin:custom-command"]

124 127 

125 128 

126 asyncio.run(main())129 asyncio.run(main())


151 154 

152 ```python Python theme={null}155 ```python Python theme={null}

153 import asyncio156 import asyncio

154 from claude_agent_sdk import query, AssistantMessage, TextBlock157 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, TextBlock

155 158 

156 159 

157 async def main():160 async def main():

158 # Load a plugin with a custom /greet skill161 # Load a plugin with a custom /greet skill

159 async for message in query(162 async for message in query(

160 prompt="/demo-plugin:greet", # Use plugin skill with namespace163 prompt="/demo-plugin:greet", # Use plugin skill with namespace

161 options={"plugins": [{"type": "local", "path": "./plugins/demo-plugin"}]},164 options=ClaudeAgentOptions(

165 plugins=[{"type": "local", "path": "./plugins/demo-plugin"}]

166 ),

162 ):167 ):

163 # Claude executes the custom greeting skill from the plugin168 # Claude executes the custom greeting skill from the plugin

164 if isinstance(message, AssistantMessage):169 if isinstance(message, AssistantMessage):


219 from claude_agent_sdk import (224 from claude_agent_sdk import (

220 AssistantMessage,225 AssistantMessage,

221 ClaudeAgentOptions,226 ClaudeAgentOptions,

227 SystemMessage,

222 TextBlock,228 TextBlock,

223 query,229 query,

224 )230 )


238 async for message in query(244 async for message in query(

239 prompt="What custom commands do you have available?", options=options245 prompt="What custom commands do you have available?", options=options

240 ):246 ):

241 if message.type == "system" and message.subtype == "init":247 if isinstance(message, SystemMessage) and message.subtype == "init":

242 print(f"Loaded plugins: {message.data.get('plugins')}")248 print(f"Loaded plugins: {message.data.get('plugins')}")

243 print(f"Available commands: {message.data.get('slash_commands')}")249 print(f"Available commands: {message.data.get('slash_commands')}")

244 250 

Details

56 prompt: "/compact",56 prompt: "/compact",

57 options: { maxTurns: 1 }57 options: { maxTurns: 1 }

58 })) {58 })) {

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

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

61 }61 }

62 }62 }


261 options: { maxTurns: 5 }261 options: { maxTurns: 5 }

262 })) {262 })) {

263 // Command will process with $1="123" and $2="high"263 // Command will process with $1="123" and $2="high"

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

265 console.log("Issue fixed:", message.result);265 console.log("Issue fixed:", message.result);

266 }266 }

267 }267 }

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 流式输入

6 

7> 理解 Claude Agent SDK 的两种输入模式及何时使用每种模式

8 

9## 概述

10 

11Claude Agent SDK 支持两种不同的输入模式来与代理交互:

12 

13* **流式输入模式**(默认和推荐)- 一个持久的、交互式的会话

14* **单消息输入** - 使用会话状态和恢复的一次性查询

15 

16本指南解释了每种模式的差异、优势和用例,以帮助您为应用程序选择正确的方法。

17 

18## 流式输入模式(推荐)

19 

20流式输入模式是使用 Claude Agent SDK 的**首选**方式。它提供对代理功能的完全访问,并支持丰富的交互式体验。

21 

22它允许代理作为一个长期运行的进程运行,接收用户输入、处理中断、显示权限请求并处理会话管理。

23 

24### 工作原理

25 

26```mermaid theme={null}

27sequenceDiagram

28 participant App as Your Application

29 participant Agent as Claude Agent

30 participant Tools as Tools/Hooks

31 participant FS as Environment/<br/>File System

32 

33 App->>Agent: Initialize with AsyncGenerator

34 activate Agent

35 

36 App->>Agent: Yield Message 1

37 Agent->>Tools: Execute tools

38 Tools->>FS: Read files

39 FS-->>Tools: File contents

40 Tools->>FS: Write/Edit files

41 FS-->>Tools: Success/Error

42 Agent-->>App: Stream partial response

43 Agent-->>App: Stream more content...

44 Agent->>App: Complete Message 1

45 

46 App->>Agent: Yield Message 2 + Image

47 Agent->>Tools: Process image & execute

48 Tools->>FS: Access filesystem

49 FS-->>Tools: Operation results

50 Agent-->>App: Stream response 2

51 

52 App->>Agent: Queue Message 3

53 App->>Agent: Interrupt/Cancel

54 Agent->>App: Handle interruption

55 

56 Note over App,Agent: Session stays alive

57 Note over Tools,FS: Persistent file system<br/>state maintained

58 

59 deactivate Agent

60```

61 

62### 优势

63 

64<CardGroup cols={2}>

65 <Card title="图像上传" icon="image">

66 直接将图像附加到消息中以进行视觉分析和理解

67 </Card>

68 

69 <Card title="队列消息" icon="stack">

70 发送多条按顺序处理的消息,具有中断能力

71 </Card>

72 

73 <Card title="工具集成" icon="wrench">

74 在会话期间完全访问所有工具和自定义 MCP 服务器

75 </Card>

76 

77 <Card title="Hooks 支持" icon="link">

78 使用生命周期 hooks 在各个点自定义行为

79 </Card>

80 

81 <Card title="实时反馈" icon="lightning">

82 查看生成的响应,而不仅仅是最终结果

83 </Card>

84 

85 <Card title="上下文持久性" icon="database">

86 自然地跨多个回合维护对话上下文

87 </Card>

88</CardGroup>

89 

90### 实现示例

91 

92<CodeGroup>

93 ```typescript TypeScript theme={null}

94 import { query, type SDKUserMessage } from "@anthropic-ai/claude-agent-sdk";

95 import { readFile } from "fs/promises";

96 

97 async function* generateMessages(): AsyncGenerator<SDKUserMessage> {

98 // First message

99 yield {

100 type: "user",

101 message: {

102 role: "user",

103 content: "Analyze this codebase for security issues"

104 },

105 parent_tool_use_id: null

106 };

107 

108 // Wait for conditions or user input

109 await new Promise((resolve) => setTimeout(resolve, 2000));

110 

111 // Follow-up with image

112 yield {

113 type: "user",

114 message: {

115 role: "user",

116 content: [

117 {

118 type: "text",

119 text: "Review this architecture diagram"

120 },

121 {

122 type: "image",

123 source: {

124 type: "base64",

125 media_type: "image/png",

126 data: await readFile("diagram.png", "base64")

127 }

128 }

129 ]

130 },

131 parent_tool_use_id: null

132 };

133 }

134 

135 // Process streaming responses

136 for await (const message of query({

137 prompt: generateMessages(),

138 options: {

139 maxTurns: 10,

140 allowedTools: ["Read", "Grep"]

141 }

142 })) {

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

144 console.log(message.result);

145 }

146 }

147 ```

148 

149 ```python Python theme={null}

150 from claude_agent_sdk import (

151 ClaudeSDKClient,

152 ClaudeAgentOptions,

153 AssistantMessage,

154 TextBlock,

155 )

156 import asyncio

157 import base64

158 

159 

160 async def streaming_analysis():

161 async def message_generator():

162 # First message

163 yield {

164 "type": "user",

165 "message": {

166 "role": "user",

167 "content": "Analyze this codebase for security issues",

168 },

169 }

170 

171 # Wait for conditions

172 await asyncio.sleep(2)

173 

174 # Follow-up with image

175 with open("diagram.png", "rb") as f:

176 image_data = base64.b64encode(f.read()).decode()

177 

178 yield {

179 "type": "user",

180 "message": {

181 "role": "user",

182 "content": [

183 {"type": "text", "text": "Review this architecture diagram"},

184 {

185 "type": "image",

186 "source": {

187 "type": "base64",

188 "media_type": "image/png",

189 "data": image_data,

190 },

191 },

192 ],

193 },

194 }

195 

196 # Use ClaudeSDKClient for streaming input

197 options = ClaudeAgentOptions(max_turns=10, allowed_tools=["Read", "Grep"])

198 

199 async with ClaudeSDKClient(options) as client:

200 # Send streaming input

201 await client.query(message_generator())

202 

203 # Process responses

204 async for message in client.receive_response():

205 if isinstance(message, AssistantMessage):

206 for block in message.content:

207 if isinstance(block, TextBlock):

208 print(block.text)

209 

210 

211 asyncio.run(streaming_analysis())

212 ```

213</CodeGroup>

214 

215## 单消息输入

216 

217单消息输入更简单但功能更受限。

218 

219### 何时使用单消息输入

220 

221在以下情况下使用单消息输入:

222 

223* 您需要一次性响应

224* 您不需要图像附件、hooks 等

225* 您需要在无状态环境中运行,例如 lambda 函数

226 

227### 限制

228 

229<Warning>

230 单消息输入模式**不**支持:

231 

232 * 消息中的直接图像附件

233 * 动态消息队列

234 * 实时中断

235 * Hook 集成

236 * 自然的多轮对话

237</Warning>

238 

239### 实现示例

240 

241<CodeGroup>

242 ```typescript TypeScript theme={null}

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

244 

245 // Simple one-shot query

246 for await (const message of query({

247 prompt: "Explain the authentication flow",

248 options: {

249 maxTurns: 1,

250 allowedTools: ["Read", "Grep"]

251 }

252 })) {

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

254 console.log(message.result);

255 }

256 }

257 

258 // Continue conversation with session management

259 for await (const message of query({

260 prompt: "Now explain the authorization process",

261 options: {

262 continue: true,

263 maxTurns: 1

264 }

265 })) {

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

267 console.log(message.result);

268 }

269 }

270 ```

271 

272 ```python Python theme={null}

273 from claude_agent_sdk import query, ClaudeAgentOptions, ResultMessage

274 import asyncio

275 

276 

277 async def single_message_example():

278 # Simple one-shot query using query() function

279 async for message in query(

280 prompt="Explain the authentication flow",

281 options=ClaudeAgentOptions(max_turns=1, allowed_tools=["Read", "Grep"]),

282 ):

283 if isinstance(message, ResultMessage):

284 print(message.result)

285 

286 # Continue conversation with session management

287 async for message in query(

288 prompt="Now explain the authorization process",

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

290 ):

291 if isinstance(message, ResultMessage):

292 print(message.result)

293 

294 

295 asyncio.run(single_message_example())

296 ```

297</CodeGroup>

Details

313<CodeGroup>313<CodeGroup>

314 ```python Python theme={null}314 ```python Python theme={null}

315 import asyncio315 import asyncio

316 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition316 from claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinition, ToolUseBlock

317 317 

318 318 

319 async def main():319 async def main():


334 # versions emitted "Task", current versions emit "Agent".334 # versions emitted "Task", current versions emit "Agent".

335 if hasattr(message, "content") and message.content:335 if hasattr(message, "content") and message.content:

336 for block in message.content:336 for block in message.content:

337 if getattr(block, "type", None) == "tool_use" and block.name in (337 if isinstance(block, ToolUseBlock) and block.name in (

338 "Task",338 "Task",

339 "Agent",339 "Agent",

340 ):340 ):


414 // Helper to extract agentId from message content414 // Helper to extract agentId from message content

415 // Stringify to avoid traversing different block types (TextBlock, ToolResultBlock, etc.)415 // Stringify to avoid traversing different block types (TextBlock, ToolResultBlock, etc.)

416 function extractAgentId(message: SDKMessage): string | undefined {416 function extractAgentId(message: SDKMessage): string | undefined {

417 if (!("message" in message)) return undefined;417 if (message.type !== "assistant" && message.type !== "user") return undefined;

418 // Stringify the content so we can search it without traversing nested blocks418 // Stringify the content so we can search it without traversing nested blocks

419 const content = JSON.stringify(message.message.content);419 const content = JSON.stringify(message.message.content);

420 const match = content.match(/agentId:\s*([a-f0-9-]+)/);420 const match = content.match(/agentId:\s*([a-f0-9-]+)/);

Details

948type SDKUserMessage = {948type SDKUserMessage = {

949 type: "user";949 type: "user";

950 uuid?: UUID;950 uuid?: UUID;

951 session_id: string;951 session_id?: string;

952 message: MessageParam; // 来自 Anthropic SDK952 message: MessageParam; // 来自 Anthropic SDK

953 parent_tool_use_id: string | null;953 parent_tool_use_id: string | null;

954 isSynthetic?: boolean;954 isSynthetic?: boolean;

Details

211export CLAUDE_CODE_USE_BEDROCK=1211export CLAUDE_CODE_USE_BEDROCK=1

212export AWS_REGION=us-east-1 # 或您首选的区域212export AWS_REGION=us-east-1 # 或您首选的区域

213 213 

214# 可选:覆盖小型/快速模型 (Haiku) 的区域214# 可选:覆盖小型/快速模型 (Bedrock 和 Mantle) 的 AWS 区域

215# 也适用于 Bedrock Mantle。215# Bedrock 上,如果未设置 ANTHROPIC_DEFAULT_HAIKU_MODEL

216# 或已弃用的 ANTHROPIC_SMALL_FAST_MODEL,则无效。

216export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2217export ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION=us-west-2

217 218 

218# 可选:覆盖 Bedrock 端点 URL 以用于自定义端点或网关219# 可选:覆盖 Bedrock 端点 URL 以用于自定义端点或网关


248| 模型类型 | 默认值 |249| 模型类型 | 默认值 |

249| :------ | :--------------------------------------------- |250| :------ | :--------------------------------------------- |

250| 主模型 | `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |251| 主模型 | `us.anthropic.claude-sonnet-4-5-20250929-v1:0` |

251| 小型/快速模型 | `us.anthropic.claude-haiku-4-5-20251001-v1:0` |252| 小型/快速模型 | 与主模型相同 |

253 

254后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Bedrock 上,Claude Code 默认将其设置为主模型,因为并非每个账户或区域都启用了 Haiku。要为后台任务使用 Haiku,请将 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 设置为您账户中可用的模型 ID。

252 255 

253要进一步自定义模型,请使用以下方法之一:256要进一步自定义模型,请使用以下方法之一:

254 257 

Details

1507| `tasks/` | 由任务工具写入的每个会话的任务列表 |1507| `tasks/` | 由任务工具写入的每个会话的任务列表 |

1508| `shell-snapshots/` | 由 Bash 工具使用的捕获的 shell 环境。在正常退出时删除。扫描清理任何在崩溃后留下的内容。 |1508| `shell-snapshots/` | 由 Bash 工具使用的捕获的 shell 环境。在正常退出时删除。扫描清理任何在崩溃后留下的内容。 |

1509| `backups/` | 在配置迁移前获取的 `~/.claude.json` 的时间戳副本 |1509| `backups/` | 在配置迁移前获取的 `~/.claude.json` 的时间戳副本 |

1510| `feedback-bundles/` | 由 `/feedback` 在第三方提供商上写入的编辑后的记录存档,用于发送到您的 Anthropic 账户团队 |

1510 1511 

1511### 保留直到您删除它们1512### 保留直到您删除它们

1512 1513 

data-usage.md +3 −1

Details

99 99 

100Claude Code 从用户的机器连接到 Sentry 以进行操作错误日志记录。数据使用 TLS 在传输中加密,使用 256 位 AES 加密在静止时加密。在 [Sentry 安全文档](https://sentry.io/security/) 中了解更多。要选择退出错误日志记录,请设置 `DISABLE_ERROR_REPORTING` 环境变量。100Claude Code 从用户的机器连接到 Sentry 以进行操作错误日志记录。数据使用 TLS 在传输中加密,使用 256 位 AES 加密在静止时加密。在 [Sentry 安全文档](https://sentry.io/security/) 中了解更多。要选择退出错误日志记录,请设置 `DISABLE_ERROR_REPORTING` 环境变量。

101 101 

102当用户运行 `/feedback` 命令时,他们的完整对话历史记录(包括代码)的副本被发送到 Anthropic。数据在传输中使用 TLS 加密。可选地,在公共存储库中创建 GitHub 问题。要选择退出,请设置 `DISABLE_FEEDBACK_COMMAND` 环境变量为 `1`。102当您运行 `/feedback` 命令时,您的对话历史记录(包括代码)的副本被发送到 Anthropic。在提交之前,您可以选择包含多少历史记录:仅当前会话(这是默认设置),或者也包括来自同一项目在过去 24 小时或 7 天内的其他会话。数据通过 TLS 在传输中加密。可选地,在公共存储库中创建 GitHub 问题。要选择退出,请将 `DISABLE_FEEDBACK_COMMAND` 环境变量设置为 `1`。

103 

104当您使用第三方提供商(如 Bedrock 或 Vertex)或未配置 Anthropic 凭据时,`/feedback` 会将报告写入 `~/.claude/feedback-bundles/` 下的本地存档,而不是将其发送到 Anthropic。已知的 API 密钥和令牌模式在写入存档之前被编辑。在您将该文件发送给您的 Anthropic 账户代表或将其附加到支持请求之前,没有任何内容离开您的机器。

103 105 

104## 按 API 提供商的默认行为106## 按 API 提供商的默认行为

105 107 

env-vars.md +3 −2

Details

42| `ANTHROPIC_FOUNDRY_RESOURCE` | Foundry 资源名称(例如,`my-resource`)。如果未设置 `ANTHROPIC_FOUNDRY_BASE_URL`,则为必需(请参阅 [Microsoft Foundry](/zh-CN/microsoft-foundry)) |42| `ANTHROPIC_FOUNDRY_RESOURCE` | Foundry 资源名称(例如,`my-resource`)。如果未设置 `ANTHROPIC_FOUNDRY_BASE_URL`,则为必需(请参阅 [Microsoft Foundry](/zh-CN/microsoft-foundry)) |

43| `ANTHROPIC_MODEL` | 要使用的模型设置的名称(请参阅[模型配置](/zh-CN/model-config#environment-variables)) |43| `ANTHROPIC_MODEL` | 要使用的模型设置的名称(请参阅[模型配置](/zh-CN/model-config#environment-variables)) |

44| `ANTHROPIC_SMALL_FAST_MODEL` | \[已弃用] [用于后台任务的 Haiku 级模型](/zh-CN/costs)的名称 |44| `ANTHROPIC_SMALL_FAST_MODEL` | \[已弃用] [用于后台任务的 Haiku 级模型](/zh-CN/costs)的名称 |

45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Bedrock 或 Bedrock Mantle 时覆盖 Haiku 级模型的 AWS 区域 |45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Bedrock 或 Bedrock Mantle 时覆盖 Haiku 级模型的 AWS 区域。在 Bedrock 上,仅当同时设置 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 或已弃用的 `ANTHROPIC_SMALL_FAST_MODEL` 时才生效,因为 Bedrock 否则会为后台任务使用主模型 |

46| `ANTHROPIC_VERTEX_BASE_URL` | 覆盖 Vertex AI 端点 URL。用于自定义 Vertex 端点或通过 [LLM 网关](/zh-CN/llm-gateway)路由时。请参阅 [Google Vertex AI](/zh-CN/google-vertex-ai) |46| `ANTHROPIC_VERTEX_BASE_URL` | 覆盖 Vertex AI 端点 URL。用于自定义 Vertex 端点或通过 [LLM 网关](/zh-CN/llm-gateway)路由时。请参阅 [Google Vertex AI](/zh-CN/google-vertex-ai) |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 请求的 GCP 项目 ID。被 `GCLOUD_PROJECT`、`GOOGLE_CLOUD_PROJECT` 或您的 `GOOGLE_APPLICATION_CREDENTIALS` 凭证文件中的项目覆盖。请参阅 [Google Vertex AI](/zh-CN/google-vertex-ai) |47| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 请求的 GCP 项目 ID。被 `GCLOUD_PROJECT`、`GOOGLE_CLOUD_PROJECT` 或您的 `GOOGLE_APPLICATION_CREDENTIALS` 凭证文件中的项目覆盖。请参阅 [Google Vertex AI](/zh-CN/google-vertex-ai) |

48| `ANTHROPIC_WORKSPACE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)的工作区 ID。当您的联合规则的范围超过一个工作区时设置此选项,以便令牌交换知道要针对哪个工作区 |48| `ANTHROPIC_WORKSPACE_ID` | [工作负载身份联合](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)的工作区 ID。当您的联合规则的范围超过一个工作区时设置此选项,以便令牌交换知道要针对哪个工作区 |


69| `CLAUDE_CODE_CLIENT_CERT` | 用于 mTLS 身份验证的客户端证书文件的路径 |69| `CLAUDE_CODE_CLIENT_CERT` | 用于 mTLS 身份验证的客户端证书文件的路径 |

70| `CLAUDE_CODE_CLIENT_KEY` | 用于 mTLS 身份验证的客户端私钥文件的路径 |70| `CLAUDE_CODE_CLIENT_KEY` | 用于 mTLS 身份验证的客户端私钥文件的路径 |

71| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密 CLAUDE\_CODE\_CLIENT\_KEY 的密码短语(可选) |71| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密 CLAUDE\_CODE\_CLIENT\_KEY 的密码短语(可选) |

72| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆盖调试日志文件路径。尽管名称如此,这是文件路径,而不是目录。需要通过 `--debug` 或 `/debug` 单独启用调试模式:仅设置此变量不会启用日志记录。[`--debug-file`](/zh-CN/cli-reference#cli-flags) 标志同时执行两者。默认为 `~/.claude/debug/<session-id>.txt` |72| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆盖调试日志文件路径。尽管名称如此,这是文件路径,而不是目录。需要通过 `--debug`、`/debug` 或 `DEBUG` 环境变量单独启用调试模式:仅设置此变量不会启用日志记录。[`--debug-file`](/zh-CN/cli-reference#cli-flags) 标志同时执行两者。默认为 `~/.claude/debug/<session-id>.txt` |

73| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最小日志级别。值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 以包含高容量诊断(如完整状态行命令输出),或提高到 `error` 以减少噪音 |73| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 写入调试日志文件的最小日志级别。值:`verbose`、`debug`(默认)、`info`、`warn`、`error`。设置为 `verbose` 以包含高容量诊断(如完整状态行命令输出),或提高到 `error` 以减少噪音 |

74| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 以禁用[1M 上下文窗口](/zh-CN/model-config#extended-context)支持。设置后,1M 模型变体在模型选择器中不可用。对于具有合规要求的企业环境很有用 |74| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 设置为 `1` 以禁用[1M 上下文窗口](/zh-CN/model-config#extended-context)支持。设置后,1M 模型变体在模型选择器中不可用。对于具有合规要求的企业环境很有用 |

75| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 设置为 `1` 以禁用 Opus 4.6 和 Sonnet 4.6 的[自适应推理](/zh-CN/model-config#adjust-effort-level)并回退到由 `MAX_THINKING_TOKENS` 控制的固定思考预算。对 Opus 4.7 无效,它始终使用自适应推理 |75| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 设置为 `1` 以禁用 Opus 4.6 和 Sonnet 4.6 的[自适应推理](/zh-CN/model-config#adjust-effort-level)并回退到由 `MAX_THINKING_TOKENS` 控制的固定思考预算。对 Opus 4.7 无效,它始终使用自适应推理 |


184| `CLAUDE_ENV_FILE` | Claude Code 在每个 Bash 命令之前在同一 shell 进程中运行的 shell 脚本的路径,因此文件中的导出对命令可见。用于在命令之间保持 virtualenv 或 conda 激活。也由 [SessionStart](/zh-CN/hooks#persist-environment-variables)、[Setup](/zh-CN/hooks#setup)、[CwdChanged](/zh-CN/hooks#cwdchanged) 和 [FileChanged](/zh-CN/hooks#filechanged) hooks 动态填充 |184| `CLAUDE_ENV_FILE` | Claude Code 在每个 Bash 命令之前在同一 shell 进程中运行的 shell 脚本的路径,因此文件中的导出对命令可见。用于在命令之间保持 virtualenv 或 conda 激活。也由 [SessionStart](/zh-CN/hooks#persist-environment-variables)、[Setup](/zh-CN/hooks#setup)、[CwdChanged](/zh-CN/hooks#cwdchanged) 和 [FileChanged](/zh-CN/hooks#filechanged) hooks 动态填充 |

185| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 当未提供显式名称时,自动生成的[远程控制](/zh-CN/remote-control)会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。`--remote-control-session-name-prefix` CLI 标志为单个调用设置相同的值 |185| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 当未提供显式名称时,自动生成的[远程控制](/zh-CN/remote-control)会话名称的前缀。默认为您的机器的主机名,生成名称如 `myhost-graceful-unicorn`。`--remote-control-session-name-prefix` CLI 标志为单个调用设置相同的值 |

186| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 流式空闲监视程序关闭停滞连接前的超时(以毫秒为单位)。默认和最小 `300000`(5 分钟)对于字节级和事件级监视程序;较低的值被静默限制以吸收扩展思考暂停和代理缓冲。对于第三方提供商,需要 `CLAUDE_ENABLE_STREAM_WATCHDOG=1` |186| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 流式空闲监视程序关闭停滞连接前的超时(以毫秒为单位)。默认和最小 `300000`(5 分钟)对于字节级和事件级监视程序;较低的值被静默限制以吸收扩展思考暂停和代理缓冲。对于第三方提供商,需要 `CLAUDE_ENABLE_STREAM_WATCHDOG=1` |

187| `DEBUG` | 设置为 `1` 以启用调试模式,等同于使用 [`--debug`](/zh-CN/cli-reference#cli-flags) 启动。调试日志写入 `~/.claude/debug/<session-id>.txt`,或写入 `CLAUDE_CODE_DEBUG_LOGS_DIR` 设置的路径。仅真值 `1`、`true`、`yes` 和 `on` 启用调试模式,因此为其他工具设置的命名空间模式如 `DEBUG=express:*` 不会触发它 |

187| `DISABLE_AUTOUPDATER` | 设置为 `1` 以禁用自动后台更新。手动 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 以阻止两者 |188| `DISABLE_AUTOUPDATER` | 设置为 `1` 以禁用自动后台更新。手动 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 以阻止两者 |

188| `DISABLE_AUTO_COMPACT` | 设置为 `1` 以禁用接近上下文限制时的自动压缩。手动 `/compact` 命令仍然可用。当您想要明确控制何时进行压缩时使用 |189| `DISABLE_AUTO_COMPACT` | 设置为 `1` 以禁用接近上下文限制时的自动压缩。手动 `/compact` 命令仍然可用。当您想要明确控制何时进行压缩时使用 |

189| `DISABLE_COMPACT` | 设置为 `1` 以禁用所有压缩:自动压缩和手动 `/compact` 命令 |190| `DISABLE_COMPACT` | 设置为 `1` 以禁用所有压缩:自动压缩和手动 `/compact` 命令 |

errors.md +3 −3

Details

81 81 

82* 检查 [status.claude.com](https://status.claude.com) 以了解活跃事件82* 检查 [status.claude.com](https://status.claude.com) 以了解活跃事件

83* 等待一分钟,然后再次发送您的消息。您的原始消息仍在对话中,因此对于长提示,您可以输入 `try again` 而不是粘贴整个内容。83* 等待一分钟,然后再次发送您的消息。您的原始消息仍在对话中,因此对于长提示,您可以输入 `try again` 而不是粘贴整个内容。

84* 如果错误持续存在且没有发布的事件,请运行 `/feedback`,以便 Anthropic 可以使用您的请求详情进行调查。如果您的提供商上 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。84* 如果错误持续存在且没有发布的事件,请运行 `/feedback`,以便 Anthropic 可以使用您的请求详情进行调查。如果您的环境中 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。

85 85 

86### API Error: Repeated 529 Overloaded errors86### API Error: Repeated 529 Overloaded errors

87 87 


584 584 

585当响应出错时,回退通常比用更正回复效果更好。按 Esc 两次或运行 `/rewind` 以回退到坏轮次之前,然后用更多细节重新表述提示。在线程中更正会将错误的尝试保留在上下文中,这可能会将后来的答案锚定到它。请参阅[检查点](/zh-CN/checkpointing)。585当响应出错时,回退通常比用更正回复效果更好。按 Esc 两次或运行 `/rewind` 以回退到坏轮次之前,然后用更多细节重新表述提示。在线程中更正会将错误的尝试保留在上下文中,这可能会将后来的答案锚定到它。请参阅[检查点](/zh-CN/checkpointing)。

586 586 

587如果在检查上述内容后质量仍然似乎有问题,请运行 `/feedback` 并描述您期望的内容与您得到的内容。以这种方式提交的反馈包括对话记录,这是 Anthropic 诊断真实回归的最快方式。如果您的提供商上 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。587如果在检查上述内容后质量仍然似乎有问题,请运行 `/feedback` 并描述您期望的内容与您得到的内容。以这种方式提交的反馈包括对话记录,这是 Anthropic 诊断真实回归的最快方式。如果您的环境中 `/feedback` 不可用,请参阅[报告错误](#report-an-error)。

588 588 

589## 报告错误589## 报告错误

590 590 


596 596 

597如果此处未列出错误或建议的修复无法帮助:597如果此处未列出错误或建议的修复无法帮助:

598 598 

599* 在 Claude Code 中运行 `/feedback` 以将记录和描述发送给 Anthropic。该命令还提供打开预填充的 GitHub 问题。Bedrock、Vertex AI Foundry 部署上不提供反馈599* 在 Claude Code 中运行 `/feedback` 以将记录和描述发送给 Anthropic。该命令还提供打开预填充的 GitHub 问题。Bedrock、Vertex AI、Foundry 和其他第三方提供商上,`/feedback` 会保存一个本地存档,您可以将其发送给您的 Anthropic 账户代表

600* 运行 `/doctor` 以检查本地配置问题600* 运行 `/doctor` 以检查本地配置问题

601* 检查 [status.claude.com](https://status.claude.com) 以了解活跃事件601* 检查 [status.claude.com](https://status.claude.com) 以了解活跃事件

602* 在 GitHub 上搜索[现有问题](https://github.com/anthropics/claude-code/issues)602* 在 GitHub 上搜索[现有问题](https://github.com/anthropics/claude-code/issues)

goal.md +4 −0

Details

6 6 

7> 使用 /goal 设置完成条件,Claude 会在多个回合中持续工作,直到条件满足。7> 使用 /goal 设置完成条件,Claude 会在多个回合中持续工作,直到条件满足。

8 8 

9<Note>

10 `/goal` 需要 Claude Code v2.1.139 或更高版本。

11</Note>

12 

9`/goal` 命令设置一个完成条件,Claude 会在没有你逐步提示的情况下持续朝着这个目标工作。每个回合后,一个小型快速模型会检查条件是否满足。如果不满足,Claude 会开始另一个回合,而不是将控制权返回给你。一旦条件满足,目标会自动清除。13`/goal` 命令设置一个完成条件,Claude 会在没有你逐步提示的情况下持续朝着这个目标工作。每个回合后,一个小型快速模型会检查条件是否满足。如果不满足,Claude 会开始另一个回合,而不是将控制权返回给你。一旦条件满足,目标会自动清除。

10 14 

11对于具有可验证的最终状态的实质性工作,使用目标:15对于具有可验证的最终状态的实质性工作,使用目标:

Details

202 202 

203[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) 会自动启用。要禁用它,请设置 `DISABLE_PROMPT_CACHING=1`。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置 `ENABLE_PROMPT_CACHING_1H=1`;具有 1 小时 TTL 的缓存写入按更高费率计费。如需提高速率限制,请联系 Google Cloud 支持。使用 Vertex AI 时,`/login` 和 `/logout` 命令被禁用,因为身份验证通过 Google Cloud 凭证处理。203[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) 会自动启用。要禁用它,请设置 `DISABLE_PROMPT_CACHING=1`。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置 `ENABLE_PROMPT_CACHING_1H=1`;具有 1 小时 TTL 的缓存写入按更高费率计费。如需提高速率限制,请联系 Google Cloud 支持。使用 Vertex AI 时,`/login` 和 `/logout` 命令被禁用,因为身份验证通过 Google Cloud 凭证处理。

204 204 

205[MCP tool search](/zh-CN/mcp#scale-with-mcp-tool-search) Vertex AI 上默认被禁用,因为端点不接受所需的 beta 标头。所有 MCP 工具定义会预先加载要选择加入,请设置 `ENABLE_TOOL_SEARCH=true`。205Claude Code 在 Vertex AI 上默认禁用 [MCP tool search](/zh-CN/mcp#scale-with-mcp-tool-search),因此 MCP 工具定义会预先加载。Vertex AI 支持 Claude Sonnet 4.5 及更高版本以及 Claude Opus 4.5 及更高版本的工具搜索设置 `ENABLE_TOOL_SEARCH=true` 以在这些模型上启用它Vertex AI 上的早期模型不接受所需的 beta 标头,如果您对它们启用工具搜索,请求将失败。

206 206 

207### 5. 固定模型版本207### 5. 固定模型版本

208 208 


227| 模型类型 | 默认值 |227| 模型类型 | 默认值 |

228| :------ | :--------------------------- |228| :------ | :--------------------------- |

229| 主模型 | `claude-sonnet-4-5@20250929` |229| 主模型 | `claude-sonnet-4-5@20250929` |

230| 小型/快速模型 | `claude-haiku-4-5@20251001` |230| 小型/快速模型 | 与主模型相同 |

231 

232后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Vertex AI 上,Claude Code 默认将其设置为主模型,因为 Haiku 可能不会在每个项目或区域中启用。要为后台任务使用 Haiku,请将 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 设置为在您的项目中可用的模型 ID。

231 233 

232要进一步自定义模型:234要进一步自定义模型:

233 235 

hooks.md +15 −1

Details

732# Notification hook:当 Claude Code 需要注意时 ping 桌面。732# Notification hook:当 Claude Code 需要注意时 ping 桌面。

733input=$(cat)733input=$(cat)

734title="Claude Code'734title="Claude Code'

735body=$(jq -r '.message // "Needs your attention"' <<<"$input")735body=$(jq -r '.message // 'Needs your attention"' <<<"$input")

736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

738```738```


1230| `subagent_type` | string | `"Explore"` | 要使用的专门代理的类型 |1230| `subagent_type` | string | `"Explore"` | 要使用的专门代理的类型 |

1231| `model` | string | `"sonnet"` | 可选的模型别名以覆盖默认值 |1231| `model` | string | `"sonnet"` | 可选的模型别名以覆盖默认值 |

1232 1232 

1233在 `PostToolUse` 中,已完成的 Agent 调用的 `tool_response` 携带 subagent 的最终文本以及使用遥测。读取这些字段以从 hook 记录每个 subagent 的成本:

1234 

1235| 字段 | 类型 | 示例 | 描述 |

1236| :------------------ | :----- | :---------------------------------------------------- | :---------------------------------------------------------------------------------------------- |

1237| `status` | string | `"completed"` | 同步调用为 `"completed"`,`run_in_background: true` 为 `"async_launched"` |

1238| `agentId` | string | `"a4d2c8f1e0b3a297"` | subagent 运行的标识符 |

1239| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | subagent 的最终文本块 |

1240| `totalTokens` | number | `12450` | 在 subagent 轮次中计费的总令牌数 |

1241| `totalDurationMs` | number | `48211` | subagent 运行的挂钟时间 |

1242| `totalToolUseCount` | number | `7` | subagent 进行的工具调用计数 |

1243| `usage` | object | `{"input_tokens": 8320, ...}` | 按类型的令牌分解:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |

1244 

1245对于 `run_in_background: true` 调用,工具在启动 subagent 后立即返回,因此 `tool_response` 不携带使用字段。它具有 `status: "async_launched"`、`agentId`、`description`、`prompt` 和 `outputFile`。

1246 

1233##### AskUserQuestion1247##### AskUserQuestion

1234 1248 

1235向用户提出一到四个多选题。1249向用户提出一到四个多选题。

mcp.md +7 −5

Details

953 953 

954### 配置工具搜索954### 配置工具搜索

955 955 

956工具搜索默认启用:MCP 工具被延迟并按需发现。在 Vertex AI 上默认禁用,它不接受工具搜索 beta 标头,以及当 `ANTHROPIC_BASE_URL` 指向非第一方主机时,因为大多数代理不转发 `tool_reference` 块。如果您的代理转发 `tool_reference` 块,请显式设置 `ENABLE_TOOL_SEARCH` 以覆盖回退。此功能需要支持 `tool_reference` 块的模型:Sonnet 4 及更高版本,或 Opus 4 及更高版本。Haiku 模型不支持工具搜索956工具搜索默认启用:MCP 工具被延迟并按需发现。Claude Code 在 Vertex AI 上默认禁用它。当 `ANTHROPIC_BASE_URL` 指向非第一方主机时,它也被禁用,因为大多数代理不转发 `tool_reference` 块。显式设置 `ENABLE_TOOL_SEARCH` 以覆盖任一回退

957 

958工具搜索需要支持 `tool_reference` 块的模型:Sonnet 4 及更高版本,或 Opus 4 及更高版本。Haiku 模型不支持它。在 Vertex AI 上,工具搜索支持 Claude Sonnet 4.5 及更高版本以及 Claude Opus 4.5 及更高版本。

957 959 

958使用 `ENABLE_TOOL_SEARCH` 环境变量控制工具搜索行为:960使用 `ENABLE_TOOL_SEARCH` 环境变量控制工具搜索行为:

959 961 

960| 值 | 行为 |962| 值 | 行为 |

961| :--------- | :----------------------------------------------------------------------------------------- |963| :------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |

962| (未设置) | 所有 MCP 工具被延迟并按需加载。在 Vertex AI 上或当 `ANTHROPIC_BASE_URL` 是非第一方主机时回退到预先加载 |964| (未设置) | 所有 MCP 工具被延迟并按需加载。在 Vertex AI 上或当 `ANTHROPIC_BASE_URL` 是非第一方主机时回退到预先加载 |

963| `true` | 所有 MCP 工具被延迟。Claude Code 即使在 Vertex AI 上和通过代理也会发送 beta 标头。如果后端不支持 `tool_reference` ,请求会失败 |965| `true` | 所有 MCP 工具被延迟。Claude Code 即使在 Vertex AI 上和通过代理也会发送 beta 标头。对于不支持 `tool_reference` 块的 Vertex AI 模型(早于 Sonnet 4.5 或 Opus 4.5)或不支持 `tool_reference` 块的代理,请求会失败 |

964| `auto` | 阈值模式:如果工具适合上下文窗口的 10% 内,则预先加载,否则延迟 |966| `auto` | 阈值模式:如果工具适合上下文窗口的 10% 内,则预先加载,否则延迟 |

965| `auto:<N>` | 阈值模式,带有自定义百分比,其中 `<N>` 是 0-100例如,`auto:5` 表示 5%|967| `auto:N` | 阈值模式,带有自定义百分比,其中 `N` 是 0-100例如,`auto:5` 表示 5% |

966| `false` | 所有 MCP 工具预先加载,无延迟 |968| `false` | 所有 MCP 工具预先加载,无延迟 |

967 969 

968```bash theme={null}970```bash theme={null}


973ENABLE_TOOL_SEARCH=false claude975ENABLE_TOOL_SEARCH=false claude

974```976```

975 977 

976或在您的[settings.json `env` 字段](/zh-CN/settings#available-settings)中设置值。978或在您的 [settings.json `env` 字段](/zh-CN/settings#available-settings) 中设置值。

977 979 

978您也可以专门禁用 `ToolSearch` 工具:980您也可以专门禁用 `ToolSearch` 工具:

979 981 

Details

163export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'163export ANTHROPIC_DEFAULT_HAIKU_MODEL='claude-haiku-4-5'

164```164```

165 165 

166后台任务(如会话标题生成)使用小型/快速模型,通常是 Haiku 级别的模型。在 Foundry 上,Claude Code 默认使用主模型,因为并非每个账户都有 Haiku 部署。要为后台任务使用 Haiku,请将 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 设置为您账户中可用的 Haiku 部署,如上所示。

167 

166有关当前和旧版模型 ID,请参阅[模型概览](https://platform.claude.com/docs/en/about-claude/models/overview)。有关完整的环境变量列表,请参阅[模型配置](/zh-CN/model-config#pin-models-for-third-party-deployments)。168有关当前和旧版模型 ID,请参阅[模型概览](https://platform.claude.com/docs/en/about-claude/models/overview)。有关完整的环境变量列表,请参阅[模型配置](/zh-CN/model-config#pin-models-for-third-party-deployments)。

167 169 

168[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) 会自动启用。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置以下变量;具有 1 小时 TTL 的缓存写入按更高的费率计费:170[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) 会自动启用。要请求 1 小时的缓存 TTL 而不是 5 分钟的默认值,请设置以下变量;具有 1 小时 TTL 的缓存写入按更高的费率计费:

settings.md +3 −1

Details

533 533 

534### 验证活跃设置534### 验证活跃设置

535 535 

536在 Claude Code 中运行 `/status` 以查看哪些设置源处于活跃状态以及它们来自何处输出显示每个配置层(managed、user、project)及其来源,例如 `Enterprise managed settings (remote)`、`Enterprise managed settings (plist)`、`Enterprise managed settings (HKLM)`、`Enterprise managed settings (HKCU)` 或 `Enterprise managed settings (file)`。如果设置文件包含错误`/status` 会报告问题以便您可以修复它536在 Claude Code 中运行 `/status` 以查看哪些设置源处于活跃状态状态选项卡包含一条 `Setting sources` 行列出 Claude Code 为当前会话加载的每一层,例如 `User settings` 或 `Project local settings`。当[managed 设置](/zh-CN/managed-settings)生效时,该条目在括号中显示交付渠道,例如 `Enterprise managed settings (remote)`、`(plist)`、`(HKLM)`、`(HKCU)` 或 `(file)`。仅当该源至少加载一个键时该层才出现在列表中因此空列表意味着未找到任何设置源

537 

538`Setting sources` 行确认正在读取哪些源。它不显示哪一层提供了每个单独的键。同一对话框中的 Config 选项卡是一个固定的切换集合(如主题和详细输出)的编辑器,而不是您的 `settings.json` 内容的视图。如果设置文件包含错误,例如无效的 JSON 或验证失败的值,`/status` 会报告问题,以便您可以修复它。

537 539 

538### 配置系统的关键点540### 配置系统的关键点

539 541