Loading...
    • 개발자 가이드
    • API 레퍼런스
    • MCP
    • 리소스
    • 릴리스 노트
    Search...
    ⌘K
    시작하기
    Claude 소개빠른 시작
    모델 및 가격
    모델 개요모델 선택Claude 4.6의 새로운 기능마이그레이션 가이드모델 지원 중단가격
    Claude로 구축하기
    기능 개요Messages API 사용중지 사유 처리프롬프트 모범 사례
    컨텍스트 관리
    컨텍스트 윈도우압축컨텍스트 편집
    기능
    프롬프트 캐싱확장 사고적응형 사고노력 수준메시지 스트리밍배치 처리인용다국어 지원토큰 카운팅임베딩비전PDF 지원Files API검색 결과구조화된 출력
    도구
    개요도구 사용 구현 방법세분화된 도구 스트리밍Bash 도구코드 실행 도구프로그래밍 방식 도구 호출컴퓨터 사용 도구텍스트 편집기 도구웹 페치 도구웹 검색 도구메모리 도구도구 검색 도구
    Agent Skills
    개요빠른 시작모범 사례엔터프라이즈용 SkillsAPI로 Skills 사용
    Agent SDK
    개요빠른 시작TypeScript SDKTypeScript V2 (미리보기)Python SDK마이그레이션 가이드
    API에서 MCP
    MCP 커넥터원격 MCP 서버
    서드파티 플랫폼의 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    프롬프트 엔지니어링
    개요프롬프트 생성기프롬프트 템플릿 사용프롬프트 개선기명확하고 직접적으로 작성예시 사용 (멀티샷 프롬프팅)Claude에게 생각하게 하기 (CoT)XML 태그 사용Claude에게 역할 부여 (시스템 프롬프트)복잡한 프롬프트 연결긴 컨텍스트 팁확장 사고 팁
    테스트 및 평가
    성공 기준 정의테스트 케이스 개발평가 도구 사용지연 시간 줄이기
    가드레일 강화
    환각 줄이기출력 일관성 높이기탈옥 방지스트리밍 거부프롬프트 유출 줄이기Claude 캐릭터 유지
    관리 및 모니터링
    Admin API 개요데이터 상주워크스페이스사용량 및 비용 APIClaude Code Analytics API제로 데이터 보존
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    기능

    적응형 사고

    적응형 사고 모드를 통해 Claude가 언제, 얼마나 사고할지 동적으로 결정하도록 합니다.

    적응형 사고는 Claude Opus 4.6에서 확장된 사고를 사용하는 권장 방법입니다. 사고 토큰 예산을 수동으로 설정하는 대신, 적응형 사고는 Claude가 각 요청의 복잡성에 따라 언제, 얼마나 사고할지 동적으로 결정하도록 합니다.

    적응형 사고는 고정된 budget_tokens를 사용하는 확장된 사고보다 안정적으로 더 나은 성능을 제공하며, Opus 4.6에서 가장 지능적인 응답을 얻으려면 적응형 사고로 전환하는 것을 권장합니다. 베타 헤더가 필요하지 않습니다.

    지원 모델

    적응형 사고는 다음 모델에서 지원됩니다:

    • Claude Opus 4.6 (claude-opus-4-6)

    thinking.type: "enabled"와 budget_tokens는 Opus 4.6에서 더 이상 사용되지 않으며(deprecated) 향후 모델 릴리스에서 제거될 예정입니다. 대신 thinking.type: "adaptive"를 effort 매개변수와 함께 사용하세요.

    이전 모델(Sonnet 4.5, Opus 4.5 등)은 적응형 사고를 지원하지 않으며 thinking.type: "enabled"와 budget_tokens가 필요합니다.

    적응형 사고 작동 방식

    적응형 모드에서 사고는 모델에게 선택 사항입니다. Claude는 각 요청의 복잡성을 평가하고 사고 여부와 사고량을 결정합니다. 기본 effort 수준(high)에서 Claude는 거의 항상 사고합니다. 더 낮은 effort 수준에서는 Claude가 더 간단한 문제에 대해 사고를 건너뛸 수 있습니다.

    적응형 사고는 또한 자동으로 인터리브 사고를 활성화합니다. 이는 Claude가 도구 호출 사이에 사고할 수 있음을 의미하며, 에이전트 워크플로에 특히 효과적입니다.

    적응형 사고 사용 방법

    API 요청에서 thinking.type을 "adaptive"로 설정하세요:

    curl https://api.anthropic.com/v1/messages \
         --header "x-api-key: $ANTHROPIC_API_KEY" \
         --header "anthropic-version: 2023-06-01" \
         --header "content-type: application/json" \
         --data \
    '{
        "model": "claude-opus-4-6",
        "max_tokens": 16000,
        "thinking": {
            "type": "adaptive"
        },
        "messages": [
            {
                "role": "user",
                "content": "Explain why the sum of two even numbers is always even."
            }
        ]
    }'

    effort 매개변수와 함께 사용하는 적응형 사고

    적응형 사고를 effort 매개변수와 결합하여 Claude가 얼마나 사고할지 안내할 수 있습니다. effort 수준은 Claude의 사고 할당에 대한 소프트 가이던스 역할을 합니다:

    Effort 수준사고 동작
    maxClaude가 사고 깊이에 제약 없이 항상 사고합니다. Opus 4.6 전용 — 다른 모델에서 max를 사용하는 요청은 오류를 반환합니다.
    high (기본값)Claude가 항상 사고합니다. 복잡한 작업에 대해 깊은 추론을 제공합니다.
    mediumClaude가 적당한 수준의 사고를 사용합니다. 매우 간단한 쿼리에 대해서는 사고를 건너뛸 수 있습니다.
    lowClaude가 사고를 최소화합니다. 속도가 가장 중요한 간단한 작업에서 사고를 건너뜁니다.
    import anthropic
    
    client = anthropic.Anthropic()
    
    response = client.messages.create(
        model="claude-opus-4-6",
        max_tokens=16000,
        thinking={
            "type": "adaptive"
        },
        output_config={
            "effort": "medium"
        },
        messages=[{
            "role": "user",
            "content": "What is the capital of France?"
        }]
    )
    
    print(response.content[0].text)

    적응형 사고와 스트리밍

    적응형 사고는 스트리밍과 원활하게 작동합니다. 사고 블록은 수동 사고 모드와 마찬가지로 thinking_delta 이벤트를 통해 스트리밍됩니다:

    import anthropic
    
    client = anthropic.Anthropic()
    
    with client.messages.stream(
        model="claude-opus-4-6",
        max_tokens=16000,
        thinking={"type": "adaptive"},
        messages=[{"role": "user", "content": "What is the greatest common divisor of 1071 and 462?"}],
    ) as stream:
        for event in stream:
            if event.type == "content_block_start":
                print(f"\nStarting {event.content_block.type} block...")
            elif event.type == "content_block_delta":
                if event.delta.type == "thinking_delta":
                    print(event.delta.thinking, end="", flush=True)
                elif event.delta.type == "text_delta":
                    print(event.delta.text, end="", flush=True)

    적응형 vs 수동 vs 비활성화 사고

    모드설정가용성사용 시기
    적응형thinking: {type: "adaptive"}Opus 4.6Claude가 언제, 얼마나 사고할지 결정합니다. effort로 안내하세요.
    수동thinking: {type: "enabled", budget_tokens: N}모든 모델. Opus 4.6에서는 더 이상 사용되지 않음(deprecated) — 대신 적응형 모드를 사용하세요.사고 토큰 지출에 대한 정밀한 제어가 필요할 때.
    비활성화thinking 매개변수 생략모든 모델확장된 사고가 필요 없고 가장 낮은 지연 시간을 원할 때.

    적응형 사고는 현재 Opus 4.6에서 사용할 수 있습니다. 이전 모델은 type: "enabled"와 budget_tokens만 지원합니다. Opus 4.6에서 type: "enabled"와 budget_tokens는 여전히 허용되지만 더 이상 사용되지 않습니다(deprecated) — 대신 적응형 사고를 effort 매개변수와 함께 사용하는 것을 권장합니다.

    중요 고려사항

    유효성 검사 변경사항

    적응형 사고를 사용할 때, 이전 어시스턴트 턴이 사고 블록으로 시작할 필요가 없습니다. 이는 API가 사고 활성화 턴이 사고 블록으로 시작하도록 강제하는 수동 모드보다 더 유연합니다.

    프롬프트 캐싱

    adaptive 사고를 사용하는 연속 요청은 프롬프트 캐시 중단점을 유지합니다. 그러나 adaptive와 enabled/disabled 사고 모드 간 전환은 메시지의 캐시 중단점을 깨뜨립니다. 시스템 프롬프트와 도구 정의는 모드 변경에 관계없이 캐시된 상태를 유지합니다.

    사고 동작 조정

    적응형 사고의 트리거 동작은 프롬프트로 조정할 수 있습니다. Claude가 원하는 것보다 더 자주 또는 덜 자주 사고한다면, 시스템 프롬프트에 안내를 추가할 수 있습니다:

    Extended thinking adds latency and should only be used when it
    will meaningfully improve answer quality — typically for problems
    that require multi-step reasoning. When in doubt, respond directly.

    Claude가 덜 자주 사고하도록 유도하면 추론이 도움이 되는 작업의 품질이 저하될 수 있습니다. 프롬프트 기반 조정을 프로덕션에 배포하기 전에 특정 워크로드에 대한 영향을 측정하세요. 먼저 더 낮은 effort 수준으로 테스트하는 것을 고려하세요.

    비용 제어

    max_tokens를 총 출력(사고 + 응답 텍스트)에 대한 하드 리밋으로 사용하세요. effort 매개변수는 Claude가 할당하는 사고량에 대한 추가적인 소프트 가이던스를 제공합니다. 이 두 가지를 함께 사용하면 비용을 효과적으로 제어할 수 있습니다.

    high 및 max effort 수준에서 Claude는 더 광범위하게 사고할 수 있으며 max_tokens 예산을 소진할 가능성이 더 높습니다. 응답에서 stop_reason: "max_tokens"가 관찰되면, 모델에 더 많은 여유를 주기 위해 max_tokens를 늘리거나 effort 수준을 낮추는 것을 고려하세요.

    사고 블록 작업

    다음 개념은 적응형 또는 수동 모드 사용 여부에 관계없이 확장된 사고를 지원하는 모든 모델에 적용됩니다.

    요약된 사고

    With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse.

    Here are some important considerations for summarized thinking:

    • You're charged for the full thinking tokens generated by the original request, not the summary tokens.
    • The billed output token count will not match the count of tokens you see in the response.
    • The first few lines of thinking output are more verbose, providing detailed reasoning that's particularly helpful for prompt engineering purposes.
    • As Anthropic seeks to improve the extended thinking feature, summarization behavior is subject to change.
    • Summarization preserves the key ideas of Claude's thinking process with minimal added latency, enabling a streamable user experience and easy migration from Claude Sonnet 3.7 to Claude 4 and later models.
    • Summarization is processed by a different model than the one you target in your requests. The thinking model does not see the summarized output.

    Claude Sonnet 3.7 continues to return full thinking output.

    In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.

    사고 암호화

    Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.

    It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns, or let the API strip them for you if you pass them back.

    If sending back thinking blocks, we recommend passing everything back as you received it for consistency and to avoid potential issues.

    Here are some important considerations on thinking encryption:

    • When streaming responses, the signature is added via a signature_delta inside a content_block_delta event just before the content_block_stop event.
    • signature values are significantly longer in Claude 4 models than in previous models.
    • The signature field is an opaque field and should not be interpreted or parsed - it exists solely for verification purposes.
    • signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.

    사고 수정

    Occasionally Claude's internal reasoning will be flagged by our safety systems. When this occurs, we encrypt some or all of the thinking block and return it to you as a redacted_thinking block. redacted_thinking blocks are decrypted when passed back to the API, allowing Claude to continue its response without losing context.

    When building customer-facing applications that use extended thinking:

    • Be aware that redacted thinking blocks contain encrypted content that isn't human-readable
    • Consider providing a simple explanation like: "Some of Claude's internal reasoning has been automatically encrypted for safety reasons. This doesn't affect the quality of responses."
    • If showing thinking blocks to users, you can filter out redacted blocks while preserving normal thinking blocks
    • Be transparent that using extended thinking features may occasionally result in some reasoning being encrypted
    • Implement appropriate error handling to gracefully manage redacted thinking without breaking your UI

    Here's an example showing both normal and redacted thinking blocks:

    {
      "content": [
        {
          "type": "thinking",
          "thinking": "Let me analyze this step by step...",
          "signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
        },
        {
          "type": "redacted_thinking",
          "data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
        },
        {
          "type": "text",
          "text": "Based on my analysis..."
        }
      ]
    }

    Seeing redacted thinking blocks in your output is expected behavior. The model can still use this redacted reasoning to inform its responses while maintaining safety guardrails.

    If you need to test redacted thinking handling in your application, you can use this special test string as your prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB

    When passing thinking and redacted_thinking blocks back to the API in a multi-turn conversation, you must include the complete unmodified block back to the API for the last assistant turn. This is critical for maintaining the model's reasoning flow. We suggest always passing back all thinking blocks to the API. For more details, see the Preserving thinking blocks section.

    가격

    For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.

    The thinking process incurs charges for:

    • Tokens used during thinking (output tokens)
    • Thinking blocks from the last assistant turn included in subsequent requests (input tokens)
    • Standard text output tokens

    When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.

    When using summarized thinking:

    • Input tokens: Tokens in your original request (excludes thinking tokens from previous turns)
    • Output tokens (billed): The original thinking tokens that Claude generated internally
    • Output tokens (visible): The summarized thinking tokens you see in the response
    • No charge: Tokens used to generate the summary

    The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the summary you see.

    추가 주제

    확장된 사고 페이지에서는 모드별 코드 예제와 함께 여러 주제를 더 자세히 다룹니다:

    • 사고와 함께하는 도구 사용: 적응형 사고에도 동일한 규칙이 적용됩니다 — 도구 호출 사이에 사고 블록을 유지하고, 사고가 활성화되어 있을 때 tool_choice 제한 사항에 유의하세요.
    • 프롬프트 캐싱: 적응형 사고에서는 동일한 사고 모드를 사용하는 연속 요청이 캐시 중단점을 유지합니다. adaptive와 enabled/disabled 모드 간 전환은 메시지의 캐시 중단점을 깨뜨립니다(시스템 프롬프트와 도구 정의는 캐시된 상태를 유지합니다).
    • 컨텍스트 윈도우: 사고 토큰이 max_tokens 및 컨텍스트 윈도우 제한과 어떻게 상호작용하는지.

    다음 단계

    확장된 사고

    수동 모드, 도구 사용, 프롬프트 캐싱을 포함한 확장된 사고에 대해 자세히 알아보세요.

    Effort 매개변수

    effort 매개변수로 Claude가 얼마나 철저하게 응답할지 제어하세요.

    Was this page helpful?

    • effort 매개변수와 함께 사용하는 적응형 사고
    • 적응형 vs 수동 vs 비활성화 사고