Extended Thinking이란?

Claude API의 Extended Thinking은 모델이 응답하기 전에 내부적으로 깊이 사고하는 기능입니다. 복잡한 추론, 수학 문제, 코드 분석 등에서 정확도를 크게 높여줍니다. 2026년 현재 Opus 4.6에서는 최대 128K 출력 토큰을 지원하며, effort 파라미터가 GA(Generally Available)로 전환되어 max 레벨까지 사용 가능합니다.

Extended Thinking 기본 사용법

import anthropic

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=16000,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[{
        "role": "user",
        "content": "다음 코드의 시간 복잡도를 분석하고 최적화 방안을 제시해주세요."
    }]
)

for block in response.content:
    if block.type == "thinking":
        print(f"[사고 과정] {block.thinking}")
    elif block.type == "text":
        print(f"[응답] {block.text}")

Tool Use와 결합하기

Extended Thinking과 Tool Use를 결합하면 모델이 도구 호출 전에 충분히 사고한 뒤 최적의 도구를 선택합니다. 이는 복잡한 에이전트 워크플로우에서 특히 유용합니다.

tools = [
    {
        "name": "web_search",
        "description": "웹에서 최신 정보를 검색합니다",
        "input_schema": {
            "type": "object",
            "properties": {
                "query": {"type": "string", "description": "검색 쿼리"}
            },
            "required": ["query"]
        }
    },
    {
        "name": "execute_code",
        "description": "Python 코드를 실행합니다",
        "input_schema": {
            "type": "object",
            "properties": {
                "code": {"type": "string", "description": "실행할 코드"}
            },
            "required": ["code"]
        }
    }
]

response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=8000,
    thinking={"type": "enabled", "budget_tokens": 5000},
    tools=tools,
    messages=[{
        "role": "user",
        "content": "2026년 4월 TSMC 주가를 검색하고 이동평균선을 계산해주세요"
    }]
)

effort 파라미터로 비용 최적화

effort 파라미터는 low, medium, high, max 4단계로 사고 깊이를 조절합니다. 간단한 작업에는 low, 복잡한 분석에는 max를 사용하면 비용 대비 품질을 최적화할 수 있습니다.

# 간단한 분류 작업 - low effort
response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1000,
    thinking={"type": "enabled", "budget_tokens": 2000},
    effort="low",
    messages=[{"role": "user", "content": "이 이메일이 스팸인지 판별해주세요"}]
)

# 복잡한 코드 리뷰 - max effort
response = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=32000,
    thinking={"type": "enabled", "budget_tokens": 50000},
    effort="max",
    messages=[{"role": "user", "content": "이 분산 시스템 코드의 동시성 버그를 찾아주세요"}]
)

MCP 커넥터와 통합

2026년 현재 MCP(Model Context Protocol) 커넥터가 퍼블릭 베타로 제공되어, Messages API에서 직접 원격 MCP 서버에 연결할 수 있습니다. GitHub, Slack, Jira 등 6,000개 이상의 앱과 통합이 가능합니다.

핵심 정리

  • Extended Thinking은 budget_tokens로 사고 깊이 제어
  • Tool Use와 결합하면 도구 선택 정확도 향상
  • effort 파라미터로 비용-품질 트레이드오프 조절
  • Opus 4.6은 최대 128K 출력 토큰 지원
  • MCP 커넥터로 외부 서비스 직접 연동 가능