5단계 다이얼 생겼습니다. 아무 생각 없이 max 쓰면 토큰만 날립니다.
핵심 요약
→ Effort = Claude가 응답에 쓰는 토큰 양을 직접 제어하는 파라미터
→ 5단계: low / medium / high(기본값) / xhigh / max
→ Opus 4.8 기본값은 high — API·Claude Code·claude.ai 전 서피스 동일
→ xhigh는 Opus 4.8과 4.7에서만 사용 가능
→ max는 Opus 4.8·4.7·4.6·Sonnet 4.6·Mythos Preview에서 사용 가능
→ xhigh/max 사용 시 max_tokens 64k 이상 설정 권장
→ Opus 4.7 대비 레벨 재보정됨 — medium은 더 많이, high는 다소 적게, xhigh는 훨씬 많이
→ claude.ai·Cowork UI에서도 사이드바 셀렉터로 조작 가능
실전 1 — 5단계 완전 정리
공식 문서의 Effort 가이드라인을 기반으로 각 레벨의 용도를 정리했습니다.
레벨 API 값 용도 토큰 소비
| low | "low" | 단순 질답, 고볼륨 파이프라인 | 최소 |
| medium | "medium" | 일반 지식 작업, 분석 | 보통 |
| high | "high" | 기본값 — 복잡한 추론, 코딩 | 높음 |
| xhigh | "xhigh" | 에이전트 코딩, 반복 툴 호출 | 매우 높음 |
| max | "max" | 제약 없는 최고 성능 | 무제한 |
공식 가이드라인: 코딩·에이전트 작업엔 xhigh로 시작하고, 나머지 지능형 작업엔 high를 쓰며, medium·low는 실제 eval로 품질을 확인한 뒤에만 낮추는 것을 권장합니다.
Opus 4.7 → 4.8 마이그레이션 주의사항 레벨이 재보정됐습니다. medium은 더 많이 생각하고, high는 다소 적게, xhigh는 훨씬 더 많이 생각합니다. 4.7에서 넘어왔다면 같은 레벨에서 먼저 재기준을 잡은 뒤 조정하세요.
실전 2 — API 사용법
import anthropic
client = anthropic.Anthropic()
# low: 단순 질답, 고볼륨 분류 파이프라인
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
output_config={"effort": "low"},
messages=[{"role": "user", "content": "이 텍스트 긍정/부정 분류해줘"}]
)
# high: 기본값 — 명시적으로 써도 동일
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
output_config={"effort": "high"},
messages=[{"role": "user", "content": "이 아키텍처 설계 리뷰해줘"}]
)
# xhigh: 에이전트 코딩, 반복 툴 호출 — max_tokens 충분히 줄 것
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=64000, # xhigh/max는 64k 이상 권장
output_config={"effort": "xhigh"},
messages=[{"role": "user", "content": "이 레포 전체 버그 찾아서 수정해줘"}]
)
# max: 제약 없는 최고 성능 — 비용 모니터링 필수
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=128000,
output_config={"effort": "max"},
messages=[{"role": "user", "content": "이 수학 증명 검증해줘"}]
)
Claude Code에서는 /effort 명령어로 바꿉니다.
# Claude Code 터미널에서
/effort low # 빠른 탐색, 초안
/effort high # 기본값 (생략 가능)
/effort xhigh # 복잡한 리팩토링, 에이전트 작업
/effort max # 최고 성능 필요할 때
실전 3 — 태스크 유형별 레벨 선택 가이드
low — 이럴 때 씁니다
✅ 텍스트 분류, 감정 분석 (정답이 뻔한 작업)
✅ 대량 문서 요약 파이프라인 (속도·비용 우선)
✅ 단순 포맷 변환 (JSON ↔ CSV)
✅ 응답 내용보다 속도가 중요한 실시간 스트리밍
medium — 이럴 때 씁니다
✅ 일반적인 코드 설명·주석 작성
✅ 문서 초안, 이메일 작성
✅ 간단한 버그 분석 (원인이 명확한 것)
✅ 지식 Q&A (단일 개념 설명)
high — 기본값, 이럴 때 씁니다 (대부분의 작업)
✅ 코드 리뷰, 아키텍처 설계 검토
✅ 복잡한 분석·추론 작업
✅ 어려운 코딩 문제 (단일 파일/함수 범위)
✅ 비즈니스 로직 구현
xhigh — 이럴 때 씁니다
✅ 에이전트 코딩 (반복 툴 호출 수반)
✅ 멀티 파일 리팩토링, 마이그레이션
✅ Dynamic Workflows 서브에이전트 오케스트레이션
✅ 장시간 비동기 워크플로우
max — 이럴 때만 씁니다 (드물게)
✅ 수학 증명, 형식 검증
✅ 보안 감사 (공격 경로 전수 탐색)
✅ 최고 성능이 명확히 필요한 단발성 작업
❌ 일상적인 코딩엔 xhigh로 충분 — max는 토큰 낭비 가능성 있음
실전 4 — 비용 관점에서 Effort 최적화
코딩 작업 기준, Opus 4.8의 기본 high effort는 Opus 4.7 기본값과 비슷한 토큰을 쓰면서 더 나은 성능을 냅니다. 즉 4.7 → 4.8 마이그레이션 시 비용 증가 없이 성능 향상을 얻을 수 있습니다.
# 볼륨별 Effort 전략
고볼륨 파이프라인 (하루 10만 건 이상)
→ low/medium 사용 후 품질 eval
→ 품질 기준 미달 항목만 high로 재처리 (라우팅 전략)
일반 에이전트 워크플로우 (하루 수백~수천 건)
→ 기본 high
→ 복잡도 높은 태스크만 xhigh로 동적 전환
대규모 코딩 에이전트 (Dynamic Workflows 포함)
→ xhigh + max_tokens 64k 이상
→ 오케스트레이터는 xhigh, 단순 서브에이전트는 medium으로 티어링
# 태스크 복잡도에 따라 effort 동적 결정하는 패턴
def get_effort_level(task_type: str) -> str:
routing = {
"classification": "low",
"summarization": "medium",
"code_review": "high",
"agent_coding": "xhigh",
"formal_verification": "max"
}
return routing.get(task_type, "high") # 기본값 high
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=32000,
output_config={"effort": get_effort_level("agent_coding")},
messages=[...]
)
마무리
✅ 기본값 high는 대부분의 작업에 적합합니다. 이유 없이 바꿀 필요 없습니다.
✅ 에이전트 코딩·Dynamic Workflows엔 xhigh + max_tokens 64k 이상이 Anthropic 권장입니다.
✅ max는 수학 증명·보안 감사처럼 제약 없는 최고 성능이 필요할 때만 씁니다.
❌ 무조건 max 쓰면 토큰만 날립니다 — 일상 코딩엔 xhigh로 충분합니다.
❌ 4.7 → 4.8 전환 시 레벨이 재보정됐으니 같은 레벨에서 먼저 eval 후 조정하세요.
관련 글
- Claude Opus 4.8 Mid-conversation System Messages 실전
- Claude Code Dynamic Workflows 실전
- Claude Opus 4.8 Fast Mode 완전 분석