SpyBara
Go Premium

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

18 files changed +509 −41. 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 // 로드된 플러그인 확인

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 // 플러그인에서 사용 가능한 명령어 확인

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 # 로드된 플러그인 확인

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 # 플러그인에서 사용 가능한 명령어 확인

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 SDK에서952 message: MessageParam; // Anthropic SDK에서

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

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

agent-view.md +6 −0

Details

265claude --agent code-reviewer --bg "address review comments on PR 1234"265claude --agent code-reviewer --bg "address review comments on PR 1234"

266```266```

267 267 

268`--name`을 전달하여 자동 생성된 이름 대신 에이전트 뷰에서 세션의 표시 이름을 설정합니다:

269 

270```bash theme={null}

271claude --bg --name "flaky-test-fix" "investigate the flaky SettingsChangeDetector test"

272```

273 

268백그라운드로 보낸 후 Claude는 세션의 짧은 ID와 관리 명령을 인쇄합니다:274백그라운드로 보낸 후 Claude는 세션의 짧은 ID와 관리 명령을 인쇄합니다:

269 275 

270```text theme={null}276```text theme={null}

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

1488 1488 

1489## 애플리케이션 데이터1489## 애플리케이션 데이터

1490 1490 

1491작성하는 설정 외에도 `~/.claude`는 세션 중에 Claude Code가 작성하는 데이터를 보유합니다. 이 파일은 일반 텍스트입니다. 도구를 통과하는 모든 항목은 디스크의 트랜스크립트에 저장됩니다. 파일 내용, 명령 출력, 붙여넣은 텍스트입니다.1491작성하는 설정 외에도 `~/.claude`는 세션 중에 Claude Code가 작성하는 데이터를 보유합니다. 이 파일은 일반 텍스트입니다. 도구를 통과하는 모든 항목은 디스크의 트랜스크립트에 저장됩니다: 파일 내용, 명령 출력, 붙여넣은 텍스트입니다.

1492 1492 

1493### 자동으로 정리됨1493### 자동으로 정리됨

1494 1494 

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 

104Bedrock 또는 Vertex와 같은 타사 제공자를 사용하거나 Anthropic 자격 증명이 구성되지 않은 경우, `/feedback`은 보고서를 Anthropic으로 전송하는 대신 `~/.claude/feedback-bundles/` 아래의 로컬 아카이브에 작성합니다. 알려진 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](/ko/microsoft-foundry) 참조) |42| `ANTHROPIC_FOUNDRY_RESOURCE` | Foundry 리소스 이름(예: `my-resource`). `ANTHROPIC_FOUNDRY_BASE_URL`이 설정되지 않은 경우 필수([Microsoft Foundry](/ko/microsoft-foundry) 참조) |

43| `ANTHROPIC_MODEL` | 사용할 모델 설정의 이름([모델 구성](/ko/model-config#environment-variables) 참조) |43| `ANTHROPIC_MODEL` | 사용할 모델 설정의 이름([모델 구성](/ko/model-config#environment-variables) 참조) |

44| `ANTHROPIC_SMALL_FAST_MODEL` | \[더 이상 사용되지 않음] 백그라운드 작업용 [Haiku 클래스 모델](/ko/costs)의 이름 |44| `ANTHROPIC_SMALL_FAST_MODEL` | \[더 이상 사용되지 않음] 백그라운드 작업용 [Haiku 클래스 모델](/ko/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 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |46| `ANTHROPIC_VERTEX_BASE_URL` | Vertex AI 엔드포인트 URL을 재정의합니다. 사용자 정의 Vertex 엔드포인트 또는 [LLM 게이트웨이](/ko/llm-gateway)를 통해 라우팅할 때 사용합니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 요청용 GCP 프로젝트 ID입니다. `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` 또는 `GOOGLE_APPLICATION_CREDENTIALS` 자격 증명 파일의 프로젝트로 재정의됩니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |47| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 요청용 GCP 프로젝트 ID입니다. `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` 또는 `GOOGLE_APPLICATION_CREDENTIALS` 자격 증명 파일의 프로젝트로 재정의됩니다. [Google Vertex AI](/ko/google-vertex-ai) 참조 |

48| `ANTHROPIC_WORKSPACE_ID` | [워크로드 ID 페더레이션](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation)용 워크스페이스 ID입니다. 페더레이션 규칙이 둘 이상의 워크스페이스로 범위가 지정되어 있을 때 토큰 교환이 어느 워크스페이스를 대상으로 할지 알 수 있도록 이를 설정합니다. |48| `ANTHROPIC_WORKSPACE_ID` | [워크로드 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`](/ko/cli-reference#cli-flags) 플래그는 둘 다 한 번에 수행합니다. 기본값은 `~/.claude/debug/<session-id>.txt`입니다. |72| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 디버그 로그 파일 경로를 재정의합니다. 이름과 달리 이는 디렉토리가 아닌 파일 경로입니다. 디버그 모드를 `--debug`, `/debug`, 또는 `DEBUG` 환경 변수를 통해 별도로 활성화해야 합니다. 이 변수만 설정해도 로깅이 활성화되지 않습니다. [`--debug-file`](/ko/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` | [1M 컨텍스트 윈도우](/ko/model-config#extended-context) 지원을 비활성화하려면 `1`로 설정합니다. 설정하면 1M 모델 변형을 모델 선택기에서 사용할 수 없습니다. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. |74| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | [1M 컨텍스트 윈도우](/ko/model-config#extended-context) 지원을 비활성화하려면 `1`로 설정합니다. 설정하면 1M 모델 변형을 모델 선택기에서 사용할 수 없습니다. 규정 준수 요구 사항이 있는 엔터프라이즈 환경에 유용합니다. |

75| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 및 Sonnet 4.6에 대해 [적응형 추론](/ko/model-config#adjust-effort-level)을 비활성화하려면 `1`로 설정합니다. `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 돌아갑니다. Opus 4.7에는 효과가 없으며, 항상 적응형 추론을 사용합니다. |75| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Opus 4.6 및 Sonnet 4.6에 대해 [적응형 추론](/ko/model-config#adjust-effort-level)을 비활성화하려면 `1`로 설정합니다. `MAX_THINKING_TOKENS`로 제어되는 고정 사고 예산으로 돌아갑니다. Opus 4.7에는 효과가 없으며, 항상 적응형 추론을 사용합니다. |


184| `CLAUDE_ENV_FILE` | Claude Code가 각 Bash 명령 전에 같은 셸 프로세스에서 실행하는 셸 스크립트의 경로이므로 파일의 내보내기가 명령에 표시됩니다. virtualenv 또는 conda 활성화를 명령 간에 유지하는 데 사용합니다. [SessionStart](/ko/hooks#persist-environment-variables), [Setup](/ko/hooks#setup), [CwdChanged](/ko/hooks#cwdchanged), [FileChanged](/ko/hooks#filechanged) 훅으로도 동적으로 채워집니다. |184| `CLAUDE_ENV_FILE` | Claude Code가 각 Bash 명령 전에 같은 셸 프로세스에서 실행하는 셸 스크립트의 경로이므로 파일의 내보내기가 명령에 표시됩니다. virtualenv 또는 conda 활성화를 명령 간에 유지하는 데 사용합니다. [SessionStart](/ko/hooks#persist-environment-variables), [Setup](/ko/hooks#setup), [CwdChanged](/ko/hooks#cwdchanged), [FileChanged](/ko/hooks#filechanged) 훅으로도 동적으로 채워집니다. |

185| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 명시적 이름이 제공되지 않을 때 자동 생성된 [Remote Control](/ko/remote-control) 세션 이름의 접두사입니다. 기본값은 머신의 호스트명이며, `myhost-graceful-unicorn`과 같은 이름을 생성합니다. `--remote-control-session-name-prefix` CLI 플래그는 단일 호출에 대해 동일한 값을 설정합니다. |185| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 명시적 이름이 제공되지 않을 때 자동 생성된 [Remote Control](/ko/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`](/ko/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` | 자동 압축과 수동 `/compact` 명령을 포함한 모든 압축을 비활성화하려면 `1`로 설정합니다. |190| `DISABLE_COMPACT` | 자동 압축과 수동 `/compact` 명령을 포함한 모든 압축을 비활성화하려면 `1`로 설정합니다. |

errors.md +2 −2

Details

81 81 

82* [status.claude.com](https://status.claude.com)에서 활성 인시던트 확인82* [status.claude.com](https://status.claude.com)에서 활성 인시던트 확인

83* 1분 기다린 후 메시지를 다시 보냅니다. 원본 메시지는 여전히 대화에 있으므로 긴 프롬프트의 경우 전체를 다시 붙여넣는 대신 `try again`을 입력할 수 있습니다.83* 1분 기다린 후 메시지를 다시 보냅니다. 원본 메시지는 여전히 대화에 있으므로 긴 프롬프트의 경우 전체를 다시 붙여넣는 대신 `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 


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`을 설정하십시오. 기본 5분 대신 1시간 캐시 TTL을 요청하려면 `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`을 설정하십시오. 기본 5분 대신 1시간 캐시 TTL을 요청하려면 `ENABLE_PROMPT_CACHING_1H=1`을 설정하십시오. 1시간 TTL을 사용한 캐시 쓰기는 더 높은 요금으로 청구됩니다. 높은 속도 제한을 위해 Google Cloud 지원팀에 문의하십시오. Vertex AI를 사용할 때 `/login` 및 `/logout` 명령은 Google Cloud 자격증명을 통해 인증이 처리되므로 비활성화됩니다.

204 204 

205[MCP tool search](/ko/mcp#scale-with-mcp-tool-search)는 엔드포인트가 필요한 베타 헤더를 허용하지 않으므로 Vertex AI에서 기본적으로 비활성화됩니다. 모든 MCP 도구 정의는 대신 미리 로드됩니다. 옵트인하려면 `ENABLE_TOOL_SEARCH=true`를 설정하십시오.205Claude Code는 [MCP tool search](/ko/mcp#scale-with-mcp-tool-search) Vertex AI에서 기본적으로 비활성화합니다. 따라서 모든 MCP 도구 정의는 미리 로드됩니다. Vertex AI는 Claude Sonnet 4.5 이상 및 Claude Opus 4.5 이상에 대해 도구 검색을 지원합니다. 이러한 모델에서 도구 검색을 활성화하려면 `ENABLE_TOOL_SEARCH=true`를 설정하십시오. Vertex AI의 이전 모델은 필요한 베타 헤더를 허용하지 않으며, 이러한 모델에서 도구 검색을 활성화하면 요청이 실패합니다.

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` | 문자열 | `"Explore"` | 사용할 특화된 에이전트의 유형 |1230| `subagent_type` | 문자열 | `"Explore"` | 사용할 특화된 에이전트의 유형 |

1231| `model` | 문자열 | `"sonnet"` | 기본값을 재정의할 선택적 모델 별칭 |1231| `model` | 문자열 | `"sonnet"` | 기본값을 재정의할 선택적 모델 별칭 |

1232 1232 

1233`PostToolUse`에서 완료된 Agent 호출의 `tool_response`는 subagent의 최종 텍스트와 사용 원격 측정을 전달합니다. hook에서 subagent별 비용을 기록하려면 이러한 필드를 읽으세요:

1234 

1235| 필드 | 유형 | 예제 | 설명 |

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

1237| `status` | 문자열 | `"completed"` | 동기 호출의 경우 `"completed"`, `run_in_background: true`의 경우 `"async_launched"` |

1238| `agentId` | 문자열 | `"a4d2c8f1e0b3a297"` | subagent 실행의 식별자 |

1239| `content` | 배열 | `[{"type": "text", "text": "Found 12 endpoints..."}]` | subagent의 최종 텍스트 블록 |

1240| `totalTokens` | 숫자 | `12450` | subagent의 턴 전체에서 청구된 총 토큰 |

1241| `totalDurationMs` | 숫자 | `48211` | subagent 실행의 벽시계 기간 |

1242| `totalToolUseCount` | 숫자 | `7` | subagent가 수행한 도구 호출 수 |

1243| `usage` | 객체 | `{"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사용자에게 1\~4개의 객관식 질문을 합니다.1249사용자에게 1\~4개의 객관식 질문을 합니다.

mcp.md +6 −4

Details

953 953 

954### Tool Search 구성954### Tool Search 구성

955 955 

956Tool Search는 기본적으로 활성화됩니다: MCP 도구는 연기되고 필요에 따라 검색됩니다. Vertex AI에서는 기본적으로 비활성화되어 있습니다(도구 검색 베타 헤더를 허용하지 않음). `ANTHROPIC_BASE_URL`이 비 자사 호스트를 가리킬 때도 비활성화됩니다(대부분의 프록시가 `tool_reference` 블록을 전달하지 않기 때문). 프록시가 `tool_reference` 블록을 전달하는 경우 명시적으로 `ENABLE_TOOL_SEARCH`를 설정하여 폴백을 재정의합니다. 이 기능은 `tool_reference` 블록을 지원하는 모델이 필요합니다: Sonnet 4 이상 또는 Opus 4 이상. Haiku 모델은 Tool Search를 지원하지 않습니다.956Tool Search는 기본적으로 활성화됩니다: MCP 도구는 연기되고 필요에 따라 검색됩니다. Claude Code는 Vertex AI에서 기본적으로 비활성화합니다. `ANTHROPIC_BASE_URL`이 비 자사 호스트를 가리킬 때도 비활성화됩니다(대부분의 프록시가 `tool_reference` 블록을 전달하지 않기 때문). 폴백을 재정의하려면 `ENABLE_TOOL_SEARCH`를 명시적으로 설정합니다.

957 

958Tool Search는 `tool_reference` 블록을 지원하는 모델이 필요합니다: Sonnet 4 이상 또는 Opus 4 이상. Haiku 모델은 이를 지원하지 않습니다. Vertex AI에서는 Claude Sonnet 4.5 이상 및 Claude Opus 4.5 이상에서 Tool Search가 지원됩니다.

957 959 

958`ENABLE_TOOL_SEARCH` 환경 변수로 Tool Search 동작을 제어합니다:960`ENABLE_TOOL_SEARCH` 환경 변수로 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 및 프록시를 통해서도 베타 헤더를 전송합니다. 백엔드가 `tool_reference` 블록을 지원하지 않으면 요청이 실패합니다 |965| `true` | 모든 MCP 도구 연기. Claude Code는 Vertex AI 및 프록시를 통해서도 베타 헤더를 전송합니다. 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}

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)를 참조하세요. 전체 환경 변수 목록은 [모델 구성](/ko/model-config#pin-models-for-third-party-deployments)을 참조하세요.168현재 및 레거시 모델 ID는 [모델 개요](https://platform.claude.com/docs/en/about-claude/models/overview)를 참조하세요. 전체 환경 변수 목록은 [모델 구성](/ko/model-config#pin-models-for-third-party-deployments)을 참조하세요.

167 169 

168[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)은 자동으로 활성화됩니다. 기본 5분 대신 1시간 캐시 TTL을 요청하려면 다음 변수를 설정합니다. 1시간 TTL로 캐시 쓰기는 더 높은 요금으로 청구됩니다:170[Prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)은 자동으로 활성화됩니다. 기본 5분 대신 1시간 캐시 TTL을 요청하려면 다음 변수를 설정합니다. 1시간 TTL로 캐시 쓰기는 더 높은 요금으로 청구됩니다:

settings.md +1 −1

Details

533 533 

534### 활성 설정 확인534### 활성 설정 확인

535 535 

536Claude 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`는 문제를 보고하여 수정할 수 있습니다.536Claude Code 내에서 `/status`를 실행하여 어떤 설정 소스가 활성화되어 있고 어디에서 오는지 확인합니다. Status 탭에는 각 구성 계층 (managed, user, project)을 `Enterprise managed settings (remote)`, `Enterprise managed settings (plist)`, `Enterprise managed settings (HKLM)`, `Enterprise managed settings (HKCU)` 또는 `Enterprise managed settings (file)`과 같은 출처와 함께 표시하는 `Setting sources` 줄이 포함됩니다. 설정 파일에 오류가 포함되어 있으면 `/status`는 문제를 보고하여 수정할 수 있습니다.

537 537 

538### 구성 시스템의 핵심 포인트538### 구성 시스템의 핵심 포인트

539 539