Sign in to save your progressYou can keep reading without an account, but completed lessons won't be saved.
Sign in

중요 참고 사항: 확장 사고는 메시지 사전 채우기(pre-filling)를 비롯한 일부 다른 기능과 호환되지 않으며, temperature 사용 방식에도 제약이 있습니다. 전체 제약 목록은 여기를 참조하세요: https://platform.claude.com/docs/en/build-with-claude/extended-thinking#feature-compatibility

확장 사고는 Claude가 최종 응답을 생성하기 전에 복잡한 문제를 해결할 시간을 갖도록 해주는 Claude의 고급 추론 기능입니다. Claude의 "연습장"이라고 생각하면 됩니다 - 답변에 도달하는 추론 과정을 볼 수 있으며, 이는 투명성을 높이고 종종 더 나은 품질의 응답을 가져옵니다.

확장 사고의 작동 방식

확장 사고가 활성화되면, Claude의 응답은 단순한 텍스트 블록에서 두 부분으로 구성된 구조화된 응답으로 바뀝니다:

사고 기능이 활성화되면, 추론 과정과 최종 답변을 모두 얻을 수 있습니다:

주요 이점은 다음과 같습니다:

  • 복잡한 작업에 대한 더 나은 추론 능력
  • 어려운 문제에 대한 정확도 향상
  • Claude의 사고 과정에 대한 투명성

그러나 중요한 트레이드오프도 있습니다:

  • 더 높은 비용(사고 토큰에 대해 비용을 지불해야 함)
  • 증가된 지연 시간(사고에는 시간이 걸림)
  • 코드에서 더 복잡한 응답 처리

확장 사고를 사용해야 할 때

결정은 간단합니다: 프롬프트 평가를 활용하세요. 먼저 사고 기능 없이 프롬프트를 실행해 보고, 프롬프트를 이미 최적화한 후에도 정확도가 요구 사항을 충족하지 못한다면 확장 사고를 활성화하는 것을 고려하세요. 이는 표준 프롬프팅으로 충분한 결과를 얻지 못할 때 사용하는 도구입니다.

응답 구조와 보안

확장 사고 응답에는 보안을 위한 특별한 서명 시스템이 포함되어 있습니다:

서명은 사고 텍스트를 수정하지 않았음을 보장하는 암호화 토큰입니다. 이는 개발자가 Claude의 추론 과정을 조작하여 모델을 안전하지 않은 방향으로 이끌 가능성을 방지합니다.

편집된 사고(Redacted Thinking)

때때로 읽을 수 있는 추론 텍스트 대신 편집된(redacted) 사고 블록을 받게 됩니다:

이는 Claude의 사고 과정이 내부 안전 시스템에 의해 플래그가 지정될 때 발생합니다. 편집된 콘텐츠에는 실제 사고 내용이 암호화된 형태로 포함되어 있어, 향후 대화에서 컨텍스트를 잃지 않고 전체 메시지를 Claude에게 다시 전달할 수 있습니다.

구현

코드에서 확장 사고를 활성화하려면, 채팅 함수에 두 개의 매개변수를 추가해야 합니다:

python
def chat(
    messages,
    system=None,
    temperature=1.0,
    stop_sequences=[],
    tools=None,
    thinking=False,
    thinking_budget=1024
):

사고 예산(thinking budget) — 요청에서의 budget_tokens — 은 Claude가 추론에 사용할 수 있는 최대 토큰 수를 설정합니다. budget_tokens의 최소값은 1024이며, max_tokens 매개변수는 budget_tokens보다 커야 합니다.

API 요청에 thinking 매개변수를 추가하세요 — type"enabled"로 설정되고 budget_tokens 값을 가진 객체입니다 — 그리고 max_tokensbudget_tokens보다 크게 높이세요:

python
if thinking:
    params["max_tokens"] = thinking_budget + 1000
    params["thinking"] = {
        "type": "enabled",
        "budget_tokens": thinking_budget
    }

그런 다음 사고 기능이 활성화된 상태로 채팅 함수를 호출하세요:

python
chat(messages, thinking=True)

편집된 응답 테스트하기

테스트 목적으로, 특별한 트리거 문자열을 전송하여 Claude가 편집된 사고 블록을 반환하도록 강제할 수 있습니다. 이는 애플리케이션이 충돌 없이 편집된 응답을 원활하게 처리하는지 확인하는 데 도움이 됩니다.

확장 사고는 Claude가 복잡한 추론 작업을 처리해야 할 때 강력한 기능이지만, 비용과 지연 시간에 미치는 영향을 고려하여 신중하게 사용해야 합니다. 표준 프롬프팅으로 시작하여 철저히 최적화한 다음, 추가적인 추론 능력이 필요할 때 사고 기능을 추가하세요.