Claude Opus 5.5 effort 어떻게 고를까? Claude Code /effort 설정, API 파라미터 작성법과 실측(low부터 max까지)

Opus 5.5의 effort(노력 수준)는 low, medium, high, xhigh, max 다섯 단계이며 기본값은 medium입니다. 최근 xhigh나 max에서 high나 medium으로 낮춰도 품질은 비슷하고 token은 훨씬 적다는 반응이 많습니다. 이 글은 Anthropic 공식 문서와 Artificial Analysis 데이터로 단계별 차이를 확인하고, Claude Code의 /effort, --effort, settings.json 설정법, API의 output_config.effort 작성법, 자주 나오는 오류, 우리 사이트 Key로 잰 소요 시간을 정리합니다.

11 分钟阅读
Claude Opus 5.5 effort 어떻게 고를까? Claude Code /effort 설정, API 파라미터 작성법과 실측(low부터 max까지)

결론부터: effort는 Opus 5.5가 얼마나 오래 생각하고 스스로 얼마나 검증할지를 정하는 설정입니다. low, medium, high, xhigh, max 다섯 단계가 있고 기본값은 medium으로, Opus 5의 기본값 high보다 한 단계 낮습니다.

  • 범위가 분명한 일상 개발(기능 구현 등)은 기본값 medium이면 충분합니다. 기존 코드베이스의 버그 수정이나 엣지 케이스가 많은 작업은 high로, 모델이 스스로 여러 번 검증해야 하는 수십 분 이상의 긴 작업에는 xhigh나 max를 씁니다. Claude Code 공식 문서의 구분입니다.
  • 사용자 반응에 따르면 Opus 5.5를 xhigh에서 high로 낮춘 많은 사람이 결과가 같거나 오히려 좋다고 말합니다. Artificial Analysis 측정에서 전체 평가를 돌리는 데 xhigh는 출력 token 약 100M, high는 56M을 썼습니다. 약 1.8배의 token으로 5점이 높았습니다(57 대 52).
  • Claude Code의 함정: ~/.claude/settings.json 최상위의 예전 방식 "effortLevel": "high"는 Opus 5.5에 적용되지 않아 그대로 medium으로 동작합니다. Opus 5.5를 선택한 상태에서 /effort high를 한 번 실행하면 Claude Code가 모델별로 modelSettings에 저장합니다. 저희 실측으로도 확인했습니다.
  • API에서는 "output_config": {"effort": "high"}를 보냅니다. 생략하면 medium입니다.

API Key를 만들고 Claude Code, Codex, Cursor에서 Opus 5.5 쓰기 →

다섯 가지 effort 단계의 의미

effort는 엄격한 token 상한이 아니라, 이 작업에 얼마나 힘을 쓸지 모델에게 알려 주는 값입니다. 생각하는 길이뿐 아니라 답변 분량과 도구 호출 횟수에도 영향을 줍니다. 공식 문서에 따르면 낮은 단계에서도 충분히 어려운 문제라면 생각하지만 그 양이 줄어듭니다. Opus 5.5는 adaptive thinking이 항상 켜져 있고 끌 수 없으므로, 추론 깊이를 조절하는 핵심 설정이 effort입니다.

아래 표는 Anthropic의 권장 사항과 Artificial Analysis가 Intelligence Index v5를 단계별로 돌린 결과를 함께 정리한 것입니다(low / medium, high, xhigh / max 비교 페이지 참고):

단계Anthropic 권장 용도AA 점수전체 평가 출력 token문제당 평균 시간
low브레인스토밍, 초안, 이름 변경 같은 작은 수정, 서브에이전트35약 21M약 153초
medium(기본값)범위가 분명한 일상 개발, 예를 들어 새 기능 구현48약 43M약 347초
high검증이 중요하거나 엣지 케이스가 많은 작업, 예를 들어 기존 코드의 버그 수정52약 56M약 474초
xhigh더 깊은 추론, 30분 이상의 긴 작업57약 100M약 793초
max보안 취약점 찾기처럼 Claude에게 맡겨 두는 어려운 문제. 과하게 생각할 수 있음58약 218M약 1141초

high에서 xhigh로 가면 token이 약 1.8배로 늘고 5점이 오릅니다. xhigh에서 max로 가면 token이 두 배 넘게 늘고 1점이 오릅니다. AA는 medium, high, xhigh, max 네 단계가 모두 '지능 대 문제당 부담' 파레토 경계에 있다고 짚었습니다. 네 단계 모두 맞는 쓰임이 있고, 어느 하나가 무조건 최고는 아니라는 뜻입니다.

요즘 effort를 낮추는 이유

이 논의는 10월 31일에 시작됐습니다. Theo (t3.gg)의 게시물에 따르면 동료 Julius의 권유로 1~2주 전 Opus 5.5를 extra high에서 high로 바꿨는데 "거의 매번 더 낫다"고 합니다. 다음 날에는 effort 단계 순위 이미지를 올렸는데 high가 1위, medium과 xhigh가 그다음, max가 꼴찌였습니다.

다른 대표적인 반응:

  • @zwb44에 따르면, AA 데이터를 그래프로 정리해 "xhigh는 1.8배 token으로 5점 상승"이라고 요약했고, 본인도 high를 주로 쓰자 사용량과 속도 차이가 확연했다고 합니다.
  • swyx에 따르면, 처리량이 중요한 경우에는 low에 자기 검토 루프를 더하는 편이 낫다고 합니다.
  • @jayleaton에 따르면, 95%의 시간은 medium을 쓰고 어려운 CUDA 커널 최적화 때만 high를 씁니다.
  • 반대로 코딩에는 high나 xhigh여야 충분하고 low는 너무 약하다는 의견도 있습니다.

X의 화제 요약에는 "Anthropic이 대부분의 작업에서 high를 최적의 균형으로 권장한다"는 문장도 있습니다. 공식 문서를 살펴봤지만 Opus 5.5에 대한 그런 문장은 찾지 못했습니다. Opus 5.5의 기본값이자 출발점은 medium이고, "high가 품질과 token 효율의 최적 균형인 경우가 많다"는 문장은 Opus 4.7 권장 사항에 있습니다. 이 글은 Opus 5.5 문서를 기준으로 썼습니다.

Anthropic 공식 설명

  • medium부터 시작하고 Opus 5 설정을 그대로 가져오지 않기: Opus 5.5 프롬프트 가이드에 따르면 Anthropic 테스트에서 Opus 5.5의 medium은 코딩과 지식 작업 평가에서 Opus 5의 high와 같거나 더 나았고, 몇몇 코딩 평가에서는 low도 그에 가까웠습니다. 같은 단계라도 Opus 5.5는 턴마다 Opus 5보다 더 많이 생각하며, 특히 xhigh와 max에서 두드러집니다. 예전 설정을 그대로 쓰면 턴이 길어지고 token이 늘어납니다.
  • xhigh와 max는 효과를 측정한 뒤에: 자기 작업으로 여러 단계를 시험해 보고 정하라고 권합니다. 생각을 줄이고 싶다면 프롬프트로 지시하기보다 effort를 먼저 낮추는 것이 더 확실합니다.
  • 블로그 저자의 사용법: 공식 블로그 claude.dev에서 Thariq Shihipar는 Spending your effort에서, 새 기능을 만들 때 Claude에게 스펙에 대해 인터뷰하게 하고 low로 구현한 뒤 직접 검토하고 high로 검증과 테스트를 한다고 소개했습니다. 그의 테스트에서 effort가 높을수록 Claude는 엣지 케이스를 더 많이 시험하고 스스로 내리는 판단도 늘었습니다. low는 출발점을 빨리 돌려주므로 사람이 옆에서 지켜보며 진행하는 작업에 맞습니다.

1단계: API Key를 만들고 Claude Code 연결하기

  1. aicodewith.ai에 가입하고 로그인한 뒤 키 관리 화면에서 Key를 만들고, 생성될 때 표시되는 전체 문자열을 복사합니다.
  2. 터미널에서 주소와 Key를 설정하고 Opus 5.5로 Claude Code를 시작합니다:
bash
export ANTHROPIC_BASE_URL="https://api.aicodewith.ai"
export ANTHROPIC_AUTH_TOKEN="YOUR_API_KEY"
claude --model claude-opus-5-5

설정을 영구 저장하거나 Windows에서 쓰거나 로그인 충돌이 생기면 Claude Code를 서드파티 API에 연결하는 방법을 참고하세요. Codex와 Cursor에서도 Claude 모델을 선택할 수 있으며 같은 글에서 다룹니다.

2단계: Claude Code에서 effort 설정하고 바꾸기

Claude Code 하단 상태 줄에 현재 단계가 표시됩니다(예: ◐ medium · /effort). 자주 쓰는 명령:

text
/effort status      # Effort level: auto (currently medium)
/effort high        # Set effort level to high (saved as your default for new sessions)
/effort             # interactive slider: low / medium / high / xhigh / max
/effort auto        # clear the saved level for the current model
  • /effort high처럼 단계를 바로 입력하거나 /effort 슬라이더, /model 선택 화면에서 Enter를 누르면 해당 모델의 기본값으로 저장되어 재시작 후에도 유지됩니다. 슬라이더에서 s를 누르면 현재 세션에만 적용됩니다.
  • max는 저장되지 않고 현재 세션에만 적용됩니다(환경 변수로 설정한 경우 제외).
  • 새 단계는 다음에 보내는 메시지부터 적용됩니다.

저장된 기본값을 건드리지 않고 잠시만 바꾸려면:

bash
# one session only
claude --model claude-opus-5-5 --effort high

# headless run (-p), this run only
claude -p "Fix the failing test" --model claude-opus-5-5 --effort low

# environment variable, overrides everything else
export CLAUDE_CODE_EFFORT_LEVEL=high

Claude Code가 단계를 정하는 우선순위는 환경 변수 CLAUDE_CODE_EFFORT_LEVEL, 세션에서 /effort나 /model로 고른 단계, 실행 옵션 --effort, settings에 저장된 값, 모델 기본값 순입니다.

함정: 예전 effortLevel은 Opus 5.5에 적용되지 않음

예전 /effort는 ~/.claude/settings.json 최상위에 effortLevel 한 줄을 썼습니다. 지금은 모델별로 저장하며, /effort high를 실행하면 파일이 이렇게 바뀝니다(실측으로 얻은 내용):

json
{
  "modelSettings": {
    "claude-opus-5-5": {
      "effortLevel": "high"
    }
  }
}

사용자 설정이 아직 예전 방식이라면:

json
{
  "effortLevel": "high"
}

실측해 보니 이 파일로 Opus 5.5를 시작하면 /effort status에 Effort level: auto (currently medium)가 표시되어 예전 high가 무시됐습니다. 같은 파일로 Opus 5를 시작하면 high였습니다. 이는 공식 문서와 같습니다. 사용자 설정 최상위의 effortLevel은 Opus 5.5 이후 모델에는 반영되지 않지만, 프로젝트, 로컬, 관리 설정 최상위의 effortLevel은 모든 모델에 적용됩니다. Opus 5에서 Opus 5.5로 옮겼다면 먼저 /effort status로 실제 단계를 확인하세요.

effort는 skill이나 서브에이전트 파일의 frontmatter에도 쓸 수 있어, 특정 skill이나 서브에이전트만 다른 단계로 돌릴 수 있습니다. 한 턴만 더 깊이 생각하게 하려면 세션 단계를 바꾸지 말고 프롬프트에 ultrathink라고 쓰면 됩니다.

3단계: API 요청에서 effort 작성법

effort는 output_config 안에 쓰며 beta 헤더는 필요 없습니다. 우리 사이트 Key를 쓰는 curl 예시:

bash
curl https://api.aicodewith.ai/v1/messages \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5-5",
    "max_tokens": 32000,
    "output_config": { "effort": "high" },
    "messages": [{ "role": "user", "content": "Write parse_duration(s) ..." }]
  }'

Python SDK:

python
import anthropic

client = anthropic.Anthropic(base_url="https://api.aicodewith.ai")
resp = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=32000,
    output_config={"effort": "high"},   # low / medium / high / xhigh / max
    messages=[{"role": "user", "content": "Write parse_duration(s) ..."}],
)
text = "".join(b.text for b in resp.content if b.type == "text")  # thinking block comes first

주의할 점:

  • output_config.effort를 보내지 않으면 모델 기본값이 적용되며 Opus 5.5는 medium입니다. "medium"을 명시해도 생략한 것과 동작이 똑같습니다.
  • 단계가 높을수록 max_tokens를 크게 잡아야 합니다. 생각에 쓰는 token도 max_tokens에 포함되기 때문입니다. Anthropic에 따르면 긴 에이전트형 코딩에는 Opus 5.5의 상한인 128000이 잘 맞았습니다.
  • content의 첫 블록은 보통 thinking입니다. 첫 블록을 바로 읽지 말고 type == "text"인 블록을 찾아 읽으세요.
  • 대화 도중 최상위 effort를 바꾸면 프롬프트 캐시가 무효화됩니다. Opus 5.5는 메시지 단위 effort 변경(beta, 헤더 mid-conversation-output-config-2026-07-01)을 지원해 캐시를 유지할 수 있습니다. 작성법은 공식 문서를 참고하세요.

실측: 우리 사이트 Key로 단계별 테스트

테스트일은 2026년 11월 1일, 모델은 claude-opus-5-5이며 모두 우리 사이트 Key로 호출했습니다.

API: 같은 문제를 단계별로

과제는 "1h30m", "2d4h" 같은 문자열을 초 단위로 바꾸는 parse_duration(s) 함수로, 대소문자, 공백, 순서 오류, 단위 중복, 소수, 음수 등 잘못된 입력을 처리해야 합니다. 단계별 코드를 25개 케이스(정상 10개, 비정상 15개)로 채점했습니다:

effort소요 시간출력 token25개 케이스
지정 안 함(기본값)약 9.8초411모두 통과
low약 9.7초410모두 통과
medium약 10.7초512모두 통과
high약 12.1초473모두 통과
xhigh약 19.8초798모두 통과
max약 258.5초5980모두 통과

지정 안 함과 low가 거의 같은 이유는 이 문제가 Opus 5.5에게 쉬워서 기본값에서도 잠깐만 생각하기 때문입니다. max에서는 4분 넘게 생각하고 출력 token이 high의 10배가 넘었지만 결과는 똑같이 25/25였습니다. max를 스트리밍 없이 보냈을 때는 4분 남짓 지나 연결이 끊겼고, 스트리밍("stream": true)으로 바꾸자 결과를 받았습니다. xhigh와 max는 스트리밍으로 쓰기를 권합니다.

Claude Code: 버그 하나를 네 단계로 수정

구간을 병합하는 함수에 버그가 있어 맞닿거나 인접한 구간이 병합되지 않고, 테스트 6개 중 2개가 실패합니다:

python
# ranges.py
def merge_ranges(ranges):
    """Merge overlapping or touching [start, end] integer ranges."""
    ranges = sorted(ranges)
    out = []
    for s, e in ranges:
        if out and s < out[-1][1]:
            out[-1][1] = max(out[-1][1], e)
        else:
            out.append([s, e])
    return out

Claude Code 2.1.310으로 low, medium, high, xhigh를 각각 실행했습니다:

bash
claude -p "Fix merge_ranges in ranges.py so all tests in test_ranges.py pass, then run python3 -m unittest. Reply with one short summary line." \
  --model claude-opus-5-5 --effort high \
  --permission-mode acceptEdits --allowedTools "Bash(python3 -m unittest*)"
effortEnter부터 결과까지결과
low약 8.8초테스트 6개 모두 통과
medium약 10.2초테스트 6개 모두 통과
high약 14.2초테스트 6개 모두 통과
xhigh약 30.3초테스트 6개 모두 통과

네 단계 모두 같은 한 줄을 고쳤습니다:

diff
-        if out and s < out[-1][1]:
+        if out and s <= out[-1][1] + 1:

사용자 반응과 맞아떨어지는 결과입니다. 범위가 분명하고 테스트가 있는 작은 작업에서는 단계를 올려도 느려질 뿐 결과가 나아지지 않습니다. 단계 차이는 엣지 케이스가 많거나, 기존 테스트가 없거나, 모델이 직접 검증해야 하는 작업에서 드러납니다. 그때 단계를 올리세요.

API Key를 만들고 내 작업으로 여러 단계를 시험해 보기 →

작업별 단계 고르기

작업시작 단계메모
질문, 이름 변경, 초안, 서브에이전트low빠름. 사람이 보면서 그때그때 수정
범위가 분명한 기능 추가, 일상 개발medium(기본값)Anthropic에 따르면 Opus 5의 high에 해당
기존 코드 버그 수정, 테스트로 검증하는 작업high사용자 반응에 따르면 xhigh에서 내려온 사람 대부분이 이걸로 충분
수십 분 이상의 긴 작업, 마이그레이션, 감사xhightoken이 크게 늘어남. max_tokens를 크게, 스트리밍으로
보안 감사 등 Claude에게 맡기는 어려운 문제maxAnthropic은 과도한 생각을 경고. 작은 범위부터 시험

구독을 쓰는 경우 단계가 높을수록 token이 늘어 사용 한도도 빨리 줄어듭니다. API Key를 쓰는 경우 token 사용량이 단계에 따라 늘며, 요청별 사용량은 호출 기록에서 볼 수 있습니다.

자주 나오는 오류와 질문

오류 "Opus 5.5 effort 必须为 low、medium、high、xhigh 或 max"

effort에 "ultra"나 "adaptive"를 넣었더니 우리 사이트가 다음과 같이 돌려줬습니다(effort는 low, medium, high, xhigh, max 중 하나여야 한다는 뜻입니다):

text
HTTP 400
Opus 5.5 effort 必须为 low、medium、high、xhigh 或 max

유효한 이름은 이 다섯 개뿐입니다. adaptive는 thinking 모드이지 effort 단계가 아니며, Claude Code의 ultracode도 API 단계가 아니므로 둘 다 output_config.effort에 쓸 수 없습니다.

high로 설정했는데 Opus 5.5가 계속 medium으로 동작

대부분 위에서 설명한 예전 effortLevel 문제입니다. Opus 5.5를 선택한 상태에서 /effort high를 실행하고 /effort status로 확인하세요. 환경 변수 CLAUDE_CODE_EFFORT_LEVEL이 설정돼 있지 않은지도 확인하세요. 이 값이 가장 우선합니다.

thinking disabled나 budget_tokens를 보내면 400

effort 공식 문서와 Opus 5.5 마이그레이션 가이드에 따르면 Opus 5.5는 생각이 항상 켜져 있어 thinking: {"type": "disabled"}와 budget_tokens는 공식 API에서 거부됩니다. thinking 필드를 지우고 생각의 깊이는 effort로 조절하세요. temperature, top_p, top_k도 빼야 합니다.

답변이 중간에 잘리거나 thinking만 있고 본문이 없음

max_tokens가 너무 작아 생각하는 데 다 써 버린 경우입니다. 높은 단계에서는 max_tokens를 늘리고 긴 작업은 스트리밍으로 받으세요.

Opus 4.6이나 Sonnet 4.6에서 xhigh를 선택한 경우

이 두 모델에는 xhigh가 없습니다. Claude Code는 선택한 단계 이하에서 쓸 수 있는 가장 높은 단계로 자동으로 내리므로, Opus 4.6에서는 xhigh가 high로 동작합니다.

Fast mode와 effort는 같은 건가요?

아닙니다. effort는 모델이 얼마나 생각하고 검증할지를 정하고, Fast mode는 별도의 스위치입니다. 켜는 방법과 쓸모 있는 상황은 Claude Opus 5.5 Fast Mode 사용법을 참고하세요.

Opus 5.5를 낮은 단계로 쓸까, Sonnet 5.5로 바꿀까

둘 다 시간과 token을 아낄 수 있습니다. 어느 쪽이 맞는지는 작업에 따라 다르니 내 작업으로 둘 다 돌려 보고 비교하세요. 모델 비교는 Claude Sonnet 5.5 vs Opus 5.5에 정리했습니다.

관련 글

참고 자료

相关文章

DeepSeek Harness Creator Mode 사용법: 설치, 서드파티 API 연결, 첫 플러그인 만들기 실측

DeepSeek Harness Creator Mode 사용법: 설치, 서드파티 API 연결, 첫 플러그인 만들기 실측

11월 2일 DeepSeek Harness 공식 계정이 Creator Mode를 소개했습니다. 원하는 도구를 한 문장으로 설명하면 에이전트가 플러그인을 작성하고 Harness에 설치한 뒤 로드됐는지까지 확인합니다. 이 글은 Creator Mode가 무엇인지, npx로 Harness를 실행하는 방법, OpenAI 호환 서드파티 API(aicodewith Base URL + Key)를 연결해 Claude, GPT, DeepSeek 모델을 쓰는 방법, Creator Mode로 todo_scan 플러그인을 만드는 과정을 실제 출력, 자주 나는 오류, Claude Code / Codex의 대응 방법과 함께 정리합니다.

Claude Code auto mode가 중계 서버를 거치면 매 턴 실패? 2.1.317에서 게이트웨이 403/422 수정 (업데이트와 테스트)

Claude Code auto mode가 중계 서버를 거치면 매 턴 실패? 2.1.317에서 게이트웨이 403/422 수정 (업데이트와 테스트)

Claude Code 2.1.317(11월 3일 출시)은 ANTHROPIC_BASE_URL이 LLM 게이트웨이를 가리키고, 그 게이트웨이가 서버 측 안전 검사에 403이나 422를 반환할 때 auto mode가 매 턴 실패하던 문제를 고쳤습니다. 무엇이 바뀌었는지, 어떤 서드파티 게이트웨이·중계 사용자가 영향을 받는지, 업데이트와 버전 확인, Base URL과 키 설정, auto mode 켜는 법, 2.1.316과 2.1.317 비교 테스트, 오류 대조표와 FAQ를 정리했습니다.

Claude Message Threads 사용법: Messages API 메시지 스레드 공개 베타, 새 메시지만 보내고 첫 토큰 약 35% 빨라짐 (Claude Code / API 실측)

Claude Message Threads 사용법: Messages API 메시지 스레드 공개 베타, 새 메시지만 보내고 첫 토큰 약 35% 빨라짐 (Claude Code / API 실측)

Anthropic이 11월 2일 Messages API의 Message Threads(메시지 스레드)를 공개 베타로 내놓았습니다. 첫 요청에서 전체 대화를 보내 스레드를 만들고, 이후에는 새 메시지와 직전 응답의 id만 보냅니다. 긴 대화에서 첫 토큰이 더 빨리 오지만 토큰 사용량과 과금은 그대로입니다. 이 글은 공식 문서를 기준으로 thread 파라미터, 베타 헤더, 5분 만료와 404 재전송을 설명하고 curl, Python, TypeScript 예시를 보여 줍니다. 또 aicodewith Key로 실측한 결과, aicodewith를 거치면 현재 thread 필드가 무시되어 이어서 보낸 턴이 앞 맥락을 잃는다는 점, Claude Code는 영향이 없다는 점, 대안과 자주 보는 오류를 정리합니다.