claude-opus-4-1-20250805
)claude-opus-4-20250514
)claude-sonnet-4-20250514
)claude-3-7-sonnet-20250219
)thinking
콘텐츠 블록을 생성합니다. Claude는 최종 응답을 작성하기 전에 이 추론에서 얻은 통찰을 통합합니다.
API 응답에는 thinking
콘텐츠 블록이 포함되고, 그 다음에 text
콘텐츠 블록이 포함됩니다.
다음은 기본 응답 형식의 예시입니다:
thinking
객체를 추가하고, type
매개변수를 enabled
로 설정하고 budget_tokens
를 확장된 사고를 위한 지정된 토큰 예산으로 설정합니다.
budget_tokens
매개변수는 Claude가 내부 추론 과정에 사용할 수 있는 최대 토큰 수를 결정합니다. Claude 4 모델에서 이 제한은 전체 사고 토큰에 적용되며, 요약된 출력에는 적용되지 않습니다. 더 큰 예산은 복잡한 문제에 대한 더 철저한 분석을 가능하게 하여 응답 품질을 향상시킬 수 있지만, Claude는 특히 32k 이상의 범위에서 할당된 전체 예산을 사용하지 않을 수 있습니다.
budget_tokens
는 max_tokens
보다 작은 값으로 설정해야 합니다. 그러나 도구와 함께 인터리브된 사고를 사용할 때는 토큰 제한이 전체 컨텍스트 윈도우(200k 토큰)가 되므로 이 제한을 초과할 수 있습니다.
thinking_delta
이벤트를 통해 사고 콘텐츠를 받습니다.
Messages API를 통한 스트리밍에 대한 자세한 문서는 메시지 스트리밍을 참조하세요.
다음은 사고와 함께 스트리밍을 처리하는 방법입니다:
tool_choice: {"type": "auto"}
(기본값) 또는 tool_choice: {"type": "none"}
만 지원합니다. tool_choice: {"type": "any"}
또는 tool_choice: {"type": "tool", "name": "..."}
를 사용하면 이러한 옵션이 도구 사용을 강제하므로 확장된 사고와 호환되지 않아 오류가 발생합니다.
thinking
블록을 API에 다시 전달해야 합니다. 추론 연속성을 유지하기 위해 완전한 수정되지 않은 블록을 API에 다시 포함시키세요.
예시: 도구 결과와 함께 사고 블록 전달하기
thinking
블록을 API에 다시 전달해야 하며, 완전한 수정되지 않은 블록을 API에 다시 포함시켜야 합니다. 이는 모델의 추론 흐름과 대화 무결성을 유지하는 데 중요합니다.
assistant
역할 턴에서 thinking
블록을 생략할 수 있지만, 다중 턴 대화에서는 항상 모든 사고 블록을 API에 다시 전달하는 것을 권장합니다. API는:thinking
블록을 제공할 때, 연속적인 thinking
블록의 전체 시퀀스는 원래 요청 중에 모델에서 생성된 출력과 일치해야 합니다. 이러한 블록의 시퀀스를 재배열하거나 수정할 수 없습니다.
interleaved-thinking-2025-05-14
를 추가하세요.
인터리브된 사고에 대한 몇 가지 중요한 고려사항은 다음과 같습니다:
budget_tokens
가 max_tokens
매개변수를 초과할 수 있습니다. 이는 하나의 어시스턴트 턴 내의 모든 사고 블록에 걸친 총 예산을 나타내기 때문입니다.interleaved-thinking-2025-05-14
와 함께 Claude 4 모델에만 지원됩니다.interleaved-thinking-2025-05-14
를 요청에 전달할 수 있으며, 효과는 없습니다.interleaved-thinking-2025-05-14
를 전달하면 요청이 실패합니다.인터리브된 사고 없는 도구 사용
인터리브된 사고와 함께하는 도구 사용
cache_control
마커 없이도 자동으로 발생합니다시스템 프롬프트 캐싱 (사고 변경 시 보존됨)
메시지 캐싱 (사고 변경 시 무효화됨)
cache_creation_input_tokens=1370
과 cache_read_input_tokens=0
으로 캐시 히트가 없음을 보여주어 사고 매개변수가 변경될 때 메시지 기반 캐싱이 무효화됨을 증명합니다.max_tokens
의 합이 모델의 컨텍스트 윈도우를 초과하면 시스템이 자동으로 max_tokens
를 컨텍스트 제한 내에 맞도록 조정했습니다. 이는 큰 max_tokens
값을 설정할 수 있고 시스템이 필요에 따라 조용히 줄여주는 것을 의미했습니다.
Claude 3.7 및 4 모델에서는 max_tokens
(사고가 활성화된 경우 사고 예산 포함)가 엄격한 제한으로 적용됩니다. 이제 프롬프트 토큰 + max_tokens
가 컨텍스트 윈도우 크기를 초과하면 시스템이 유효성 검사 오류를 반환합니다.
max_tokens
제한에 계산됩니다max_tokens
동작을 고려할 때 다음이 필요할 수 있습니다:
max_tokens
값 조정signature
필드에 반환됩니다. 이 필드는 API에 다시 전달될 때 사고 블록이 Claude에 의해 생성되었음을 확인하는 데 사용됩니다.
content_block_stop
이벤트 직전에 content_block_delta
이벤트 내의 signature_delta
를 통해 추가됩니다.signature
값은 Claude 4 모델에서 이전 모델보다 훨씬 깁니다.signature
필드는 불투명한 필드이며 해석하거나 파싱해서는 안 됩니다. 검증 목적으로만 존재합니다.signature
값은 플랫폼 간(Anthropic API, Amazon Bedrock, Vertex AI) 호환됩니다. 한 플랫폼에서 생성된 값은 다른 플랫폼과 호환됩니다.thinking
블록의 일부 또는 전부를 암호화하여 redacted_thinking
블록으로 반환합니다. redacted_thinking
블록은 API에 다시 전달될 때 복호화되어 Claude가 컨텍스트를 잃지 않고 응답을 계속할 수 있게 합니다.
확장된 사고를 사용하는 고객 대면 애플리케이션을 구축할 때:
ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
thinking
및 redacted_thinking
블록을 API에 다시 전달할 때는 마지막 어시스턴트 턴에 대해 완전한 수정되지 않은 블록을 API에 포함시켜야 합니다. 이는 모델의 추론 흐름을 유지하는 데 중요합니다. 모든 사고 블록을 항상 API에 다시 전달하는 것을 권장합니다. 자세한 내용은 위의 사고 블록 보존 섹션을 참조하세요.
예시: 편집된 사고 블록 작업하기
redacted_thinking
블록을 처리하는 방법을 보여줍니다:기능 | Claude Sonnet 3.7 | Claude 4 모델 |
---|---|---|
사고 출력 | 전체 사고 출력 반환 | 요약된 사고 반환 |
인터리브된 사고 | 지원되지 않음 | interleaved-thinking-2025-05-14 베타 헤더와 함께 지원됨 |
모델 | 기본 입력 토큰 | 캐시 쓰기 | 캐시 히트 | 출력 토큰 |
---|---|---|---|---|
Claude Opus 4.1 | $15 / MTok | $18.75 / MTok | $1.50 / MTok | $75 / MTok |
Claude Opus 4 | $15 / MTok | $18.75 / MTok | $1.50 / MTok | $75 / MTok |
Claude Sonnet 4 | $3 / MTok | $3.75 / MTok | $0.30 / MTok | $15 / MTok |
Claude Sonnet 3.7 | $3 / MTok | $3.75 / MTok | $0.30 / MTok | $15 / MTok |
max_tokens
가 21,333보다 클 때는 스트리밍이 필요합니다. 스트리밍할 때 사고와 텍스트 콘텐츠 블록이 도착할 때 모두 처리할 준비를 하세요.temperature
또는 top_k
수정 및 강제 도구 사용과 호환되지 않습니다.top_p
를 1과 0.95 사이의 값으로 설정할 수 있습니다.