Claude Fable 5.2는 Fable 5.1 대비 정가가 20% 하락했습니다. 그럼에도 불구하고 단가는 Opus 5.5의 2배이며, 고속(fast) 모드를 적용하면 추가로 2배가 됩니다. 게다가 Opus 5.5의 고속 모드와 Fable 5.2의 표준 모드는 모두 입력 $8 / 출력 $40 (100만 토큰당)으로 가격이 동일합니다. 같은 금액을 지불한다면, 출력이 빠른 Opus 5.5를 선택해야 할까요, 아니면 성능이 우수한 Fable 5.2를 선택해야 할까요?
본 글에서는 최소 코드로 호출하는 방법부터 effort(추론의 깊이) 및 고속 모드 설정, 가격표에 따른 모드 선택법, 마이그레이션 시 발생하는 400 에러, 거부(refusal) 처리까지 순서대로 정리하고 마지막에 이 질문에 답합니다.
대상 독자는 Claude API를 사용하여 애플리케이션이나 에이전트를 개발하며, Fable 5.2 도입 또는 Fable 5.1에서 마이그레이션을 고려하는 개발자입니다.
본 글은 2026-11-12 시점의 공식 문서 및 발표 페이지 설명을 기반으로 작성되었으며, API 실시간 호출을 수행하지 않았습니다. 코드 예시는 공식 문서에 있는 예시의 모델명을 claude-fable-5-2로 대체하고, 각 페이지에 제시된 인자 형태를 조합한 것입니다.
- Python SDK와 curl을 사용하여
claude-fable-5-2를 호출할 수 있습니다.
- 사용 목적에 맞게
output_config.effort와 speed: "fast"를 설정할 수 있습니다 — 표준 $8/$40, 고속 $16/$80, 배치(Batch) $4/$20의 가격을 Opus 5.5와 비교하여 모드를 선택할 수 있습니다.
- Fable 5.1에서 마이그레이션 시 발생할 수 있는 400 에러를 유발하는 방식(thinking 지정, 강제 tool_choice, 히스토리 전방 편집)을 피할 수 있습니다.
- HTTP 200으로 반환되는 거부(
stop_reason: "refusal")를 감지하여 폴백(fallback) 설계를 할 수 있습니다.
공식 What's new 페이지에서는 먼저 최신 Opus부터 시작하고, effort를 높여도 eval(자사 평가 세트)을 충족하지 못할 때 Fable 5.2로 이동하는 순서를 권장합니다.
For most workloads, start with the latest Claude Opus model ..., and move to Claude Fable 5.2 when your evals on a Claude Opus model at higher effort still don't meet your requirements.
이 순서에 Fable 5.2를 선택한 후의 모드 선택(표준/고속/배치)을 추가하면 다음과 같은 흐름이 됩니다.
[IMG:N]
도표상의 금액은 100만 토큰당 입력/출력 단가(미국 달러)입니다.
모델 목록 공식 페이지에 따르면, Fable 5.2의 Claude API 상 모델 ID는 claude-fable-5-2입니다. 공식 문서는 Claude의 모든 모델 ID가 날짜를 포함하지 않는 버전부터 특정 시점의 스냅샷(특정 시점에 고정된 모델)이라고 설명합니다. 별칭 행에도 동일한 ID가 기재되어 있으므로, claude-fable-5-2를 지정하면 같은 버전을 호출할 수 있습니다.
| 항목 | 값 |
|---|
| Claude API의 모델 ID | claude-fable-5-2 |
| ... | |
| 데이터 보존 조건 또한 도입 전에 확인이 필요합니다. Fable 5.2 개요 페이지는 30일간의 데이터 보존이 필수이며, Anthropic이 명시적으로 허가한 경우를 제외하고는 제로 데이터 보존(ZDR)으로는 이용할 수 없다고 기재되어 있습니다. 반면 발표 페이지에는 ZDR에서의 지속적인 사용에 대한 언급이 있어, 두 표현은 일치하지 않습니다. 본 글은 문서 측의 기술을 전제로 하고 있으므로, ZDR을 전제로 한 계약으로 사용할 경우에는 사내 계약 조건을 사전에 확인해 주십시오. | |
Python SDK에서는 공식 입문 페이지에 있는 최소 코드의 model 부분을 교체하는 것만으로 호출할 수 있습니다.
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
...
공식 예시는 응답의 content를 블록 단위로 확인하고, type이 text인 경우...
블록만 표시하고 있습니다. Fable 5.2는 '사고(thinking)'가 항상 활성화되는 모델이므로, 이 필터링을 제거하지 않고 남겨두면 사용하기 편리합니다. 또한, effort 공식 페이지에서는 "큰 max_tokens를 설정하는 것"이라고 안내하고 있습니다.
여기서 max_tokens는 사고 과정과 본문을 합친 출력의 최대 상한선이며, Fable 5.2의 기본 effort는 high입니다. 공식 예시의 1000을 그대로 사용하면 상한이 부족할 수 있으므로, 실제로 사용할 때는 더 큰 값으로 변경해 주십시오.
cURL을 이용할 경우, 엔드포인트 https://api.anthropic.com/v1/messages에 세 가지 헤더(x-api-key, anthropic-version, content-type)를 붙여 전송합니다.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2026-10-21" \
...
공식 What's new 페이지에 따르면, Fable 5.2의 사고 과정은 adaptive thinking(적응형 사고)으로 항상 활성화되어 있습니다. 따라서 Python과 cURL 어느 쪽을 사용하든 다음 매개변수는 전송하지 않습니다.
thinking: {"type": "enabled"}와 budget_tokens를 함께 지정하거나, {"type": "disabled"}로 지정하는 경우 모두 400 에러가 발생합니다.
tool_choice 강제 지정: {"type": "any"}나 {"type": "tool", "name": "..."}는 400의 invalid_request_error를 유발합니다.
temperature/top_p/top_k: What's new 페이지에서는 생략할 것을 안내하고 있습니다.
사고의 정도는 thinking이 아니라 다음 effort로 조정합니다.
effort는 응답에 얼마나 많은 추론을 할애할지 지정하는 매개변수이며, output_config.effort에 설정합니다. effort 공식 페이지에 따르면 값은 low/medium/high/xhigh/max의 5단계입니다.
message = client.messages.create(
model="claude-fable-5-2",
max_tokens=1000,
...
cURL에서는 요청 본문에 `
response = client.messages.create(
model="claude-fable-5-2",
max_tokens=1000,
...
)
이 코드는 고속 모드(fast mode)와 effort 페이지에 있는 인자 형태를 하나로 통합한 것이며, 공식적으로 동일한 조합의 예시는 아닙니다. 사용하기 전에 각 페이지의 최신 예시와 대조하여 확인해 주십시오. curl을 사용할 경우, 본문에 "speed": "fast"를 추가합니다.
사양상의 제약은 다음과 같습니다.
| 항목 | 공식 문서 설명 |
|---|
| 속도가 향상되는 지표 | 출력 토큰당 초(OTPS). 첫 번째 토큰이 반환되기까지의 시간(TTFT)은 제외 대상 |
| ... | usage.speed가 "fast"인지 "standard"인지 |
| 표준 모드로 전환할 때 | 프롬프트 캐시가 미스(miss)가 됩니다. |
지원 플랫폼은 공식 표에 다음과 같이 정리되어 있습니다.
| 플랫폼 | 고속 모드 |
|---|
| Claude API | speed: "fast"를 지정합니다. |
| Google Cloud (Anthropic managed / Google managed) | 표에 기재되어 있습니다. |
| Microsoft Foundry (Anthropic 호스팅) | 전용 모델 ID claude-fable-5-2-fast를 지정하고, speed는 붙이지 않습니다. |
| Amazon Bedrock / Claude Platform on AWS | 표에 기재되어 있지 않습니다. |
Bedrock과 Claude Platform on AWS는 표에 기재되어 있지 않으며 비지원이라고 명시되지는 않았습니다. 이들을 경유할 경우에는 각 플랫폼의 문서를 통해 확인해 주십시오.
가격 공식 페이지, What's new 페이지, 고속 모드 페이지의 수치를 하나의 표로 정리했습니다. 단위는 모두 100만 토큰당 미국 달러($)입니다.
| 모델・모드 | 입력 | 출력 | 비고 |
|---|
| Fable 5.2 표준 | $8 | $40 | Fable 5.1보다 20% 저렴 |
| ... | | | |
프롬프트 캐시의 단가는 다음과 같습니다.
| 항목 | Fable 5.2 | Opus 5.5 |
|---|---|
| 캐시 읽기 | $0.20 (입력 단가의 0.025배) | $0.20 (입력 단가의 0.05배) |
| 1시간 캐시 쓰기 | $16 | $8 |
표를 나열하면, 모드 조합에 대해 네 가지 관계를 읽을 수 있습니다.
- Opus 5.5의 고속 모드와 Fable 5.2의 표준 모드는 동일 가격($8/$40)입니다. 이 가격대에서는 출력 속도를 취할지 모델의 능력을 취할지의 선택이 됩니다.
- Fable 5.2의 Batch는 Opus 5.5의 표준과 동일 가격($4/$20)입니다. 결과를 기다릴 수 있는 비동기 처리라면, Opus 5.5와 같은 단가로 Fable 5.2를 사용할 수 있습니다.
- Fable 5.2의 고속 모드($16/$80)는 Opus 5.5 표준의 4배 단가입니다. 출력 속도가 병목이 되는 요청에 한정하여 적용하는 전제가 됩니다.
- 캐시 읽기는 두 모델 모두 $0.20입니다. 입력의 대부분을 캐시에서 읽어오는 구성에서는 입력 측 가격 차이가 줄어들고, 출력 단가 차이($40와 $20)만 남습니다.
단가를 제외한 요소로 발표 페이지는 Fable 5.2가 Fable 5.1보다 적은 토큰으로 어려운 작업을 완료할 수 있다고 언급하고 있습니다. WANDR의 결과에서는 Medium effort의 Fable 5.2가 Opus 5.5의 최고 점수에, 작업당 약 40%의 비용으로 근접했다고 합니다. Fable 5.1보다 최대 30% 빠르게 출력하며, 안전 분류기(safety classifier)에 의한 차단은 초기 테스트(claude.ai・Claude Code・Cowork)에서 약 55% 적었다고 설명합니다. 벤치마크의 개별 점수는 발표 페이지를 참조해 주십시오.
공식 정보로 확인할 수 있는 Fable 5.1과의 비교는 정가 차이(20%)와, 적은 토큰으로 완료한다는 발표 페이지의 설명입니다. 작업당 비용은 effort나 작업의 성격에 따라 달라지므로, 이전 여부를 판단하는 것은 자체 평가(eval)에서 비교하는 것이 확실합니다.
거부(Refusal) 및 폴백(Fallback) 공식 페이지에 따르면, Fable 5.2가 세이프가드(안전 제한)로 인해 응답을 거부할 경우, 오류가 아닌 일반적인 응답으로 반환됩니다. HTTP 상태 코드는 200이며, stop_reason이 "refusal"이고, stop_details.category에 거부 카테고리(예: "cyber")가 포함됩니다. 공식 예시에서는 content가 비어 있고 output_tokens가 0인 응답이 표시되어 있습니다.
HTTP 오류를 예외로 포착하는 구현만으로는 거부를 감지할 수 없습니다. 응답마다 stop_reason을 확인하는 분기가 필요합니다.
message = client.messages.create(
model="claude-fable-5-2",
max_tokens=1000,
...
이 분기는 공식 페이지의 필드 이름에 맞춘 골격이며, SDK에서의 속성 참조 방법은 공식 페이지 예시에서 확인해 주십시오.
폴백 방식은 두 가지가 있습니다.
서버 측 폴백(Server-side Fallback) (beta): 요청 시 fallbacks에 "default"를 지정하고, beta 헤더 server-side-fallback-2026-07-01을 추가하는 방식입니다. What's new 페이지에 따르면, Fable 5.2에서 허용되는 폴백 대상은 Opus 4.8과 Opus 5입니다. 권장되는 폴백 대상이 없는 카테고리(예: reasoning_extraction)에서는 거부 상태로 반환됩니다. 공식 Python 예시에서는 이 기능이 client.messages가 아닌 client.beta.messages와 betas=[...]의 조합으로 호출되고 있습니다. 절차 2~4의 비-beta 예시와는 호출 대상이 다르다는 점에 주의하십시오. SDK에서의 호출 방법 세부 사항은 거부 및 폴백 공식 페이지에서 확인해 주십시오.
클라이언트 측 폴백(Client-side Fallback): SDK의 미들웨어 또는 자체 재시도 처리 로직을 사용하여 stop_reason을 보고 다른 모델로 다시 요청하는 방식입니다.
What's new 페이지에 따르면, Fable 5.1에서 마이그레이션 할 때는 모델 ID를 claude-fable-5-2로 변경하는 것이 기본입니다. 그 외에도 코드가 손상될 수 있는 변경 사항이 4가지가 언급되었습니다. 평가(eval) 재실행을 포함하여 총 5가지 항목을 마이그레이션 전에 확인해야 합니다.
| # | 확인 항목 | 내용 |
|---|
| 1 | 히스토리 편집 | system・tools・과거 messages를 수정하면 400 에러가 발생함 |
| ... | Bedrock 외에서는 400 에러. computer_toolset_20260801로 마이그레이션해야 함 | |
| 4 | advisor | Fable 5.2를 executor에 사용할 경우, advisor의 model은 claude-fable-5-2 또는 Mythos 5.2만 가능함. Fable 5.1 등을 지정하면 400 invalid_request_error 발생. advisor 변경은 tools 편집에 해당하므로, 새로운 대화에서 진행해야 함 (advisor 도구는 beta) |
| 5 | eval 재실행 | effort별 사고 과정이나 긴 작업 완료 등, 동작 차이를 자체 평가로 확인해야 함 |
이 외에도, Fable 5.1용으로 작성된 budget_tokens가 포함된 thinking 또는 강제 tool_choice는 400 에러가 발생하므로, 절차 2와 같이 지정에서 제외합니다.
Preserved thinking은 이전 턴의 thinking 블록을 대화 히스토리 전체와 함께 전송하는 사용법입니다. Preserved thinking 공식 페이지 및 What's new 페이지에 따르면, 히스토리의 앞부분(system・tools・과거 messages)을 수정하면 전송된 thinking 블록이 무효화됩니다. prefix_mismatch_behavior를 지정하지 않은 경우, Fable 5.2에서는 계정 생성 시기와 관계없이 400 에러("The block is bound to a different conversation")가 반환됩니다.
Fable 5.1에서 이 400 오류가 반환되는 것은 2026-08-31 이후에 생성된 계정에 한해서였습니다. 오래된 계정의 Fable 5.1에서는 문제가 없었던 코드라도, Fable 5.2에서는 실패할 가능성이 있습니다.
공식적인 해결책은 대화 전체에 걸쳐 system과 tools를 동일하게 유지하고, messages는 끝에 추가만 하는 것입니다. 예를 들어, 매 턴마다 시스템(system) 프롬프트에 현재 시간이나 상태를 삽입하는 구현이나, 오래된 messages를 요약하여 대체하는 구현은 이 조건에 위배됩니다.
당장 수정할 수 없을 경우의 임시 방편으로, 베타 헤더 thinking-binding-controls-2026-08-01을 추가하고 thinking.block_binding.prefix_mismatch_behavior에 "drop_block"을 지정하는 방법이 있습니다. 하지만 블록을 버리면 출력 토큰이 증가할 수 있으므로, 공식 문서는 이 방법을 기록 편집 기능이 수정될 때까지의 임시 연결 고리로 취급하도록 권장하고 있습니다.
What's new 페이지에 따르면, Fable 5.2의 thinking을 읽을 수 있는 것은 Fable 5.2와 Mythos 5.2뿐입니다. 대화 도중에 Opus 5.5나 Fable 5.1, 또는 폴백(fallback) 대상인 Opus 4.8 / Opus 5로 전환하면, 해당 턴에서는 Fable 5.2의 thinking이 누락됩니다. 오류가 발생하지는 않으며, 누락된 분에 대해서는 과금되지도 않습니다. 또한 다른 계정으로 가져갈 수도 없습니다.
Claude Code의 changelog에 따르면, v2.1.321(2026-11-09)에서 Fable 5.2(claude-fable-5-2)가 추가되어 기본 Fable 모델이 되었습니다. changelog에는 1M 컨텍스트, 100만 토
고속 모드는 첫 응답 속도를 높여주지 않습니다: 고속 모드(Fast Mode)의 개선 대상은 OTPS이며, TTFT는 제외됩니다. 채팅 화면처럼 사용자의 대기 시간이 첫 글자가 나오는 시간으로 결정되는 상황에서는 단가를 2배로 올려도 체감 변화가 크지 않다고 해석할 수 있습니다. 효과를 기대할 수 있는 경우는 긴 코드나 보고서를 생성하여 전체 소요 시간을 줄이고자 할 때입니다.
고속 모드에서 표준 모드로의 전환 경로는 직접 마련해야 합니다: 표준 모드(Standard Mode)로 전환하는 것은 캐시 미스(cache miss)를 동반하기 때문에, 긴 시스템 프롬프트(system prompt)를 캐싱한 구성일수록 전환 시 입력 비용이 증가합니다. 429/529 에러를 받았을 때 표준 모드로 재전송할지, 기다렸다가 고속 모드로 재시도할지를 사용하기 전에 결정해 두어야 합니다.
전환 과정의 어려움은 단가보다 히스토리 처리 방식에 있습니다: Fable 5.2에서는 히스토리의 앞부분을 수정하면 계정 생성 시기와 관계없이 400 에러가 발생하며, 다른 모델이 응답한 턴(turn)에서는 추론이 끊깁니다. 히스토리를 요약하거나 압축하고, 턴별로 모델을 분배하거나 거부 시 폴백(fallback)을 결합한 에이전트는 model ID를 변경하기 전에 'system과 tools는 고정하고 messages만 끝에 추가한다'라는 조건을 충족하는지 점검해야 합니다. 전환 계획의 공수(工數)를 좌우하는 것은 정가 차이(Fable 5.1 대비 20% 저렴함)보다 이 부분이 더 중요하다고 생각합니다.
비동기 처리는 Opus 5.5와 동일한 단가로 사용할 수 있습니다: Fable 5.2의 배치(Batch, $4/$20)는 Opus 5.5 표준과 금액이 같으므로, 야간 일괄 처리나 eval처럼 결과를 기다릴 수 있는 작업이라면 단가를 이유로 Fable 5.2를 피할 필요가 없습니다.
단가만 비교하면 Fable 5.2는 Opus 5.5의 2배이지만, 모드를 조합하면 'Opus 5.5 고속과 Fable 5.2 표준', 'Opus 5.5 표준과 Fable 5.2 배치'가 각각 동일한 비용이 됩니다. 단가가 맞는 조합을 후보로 삼아 eval에서 성능을 확인하는 순서로 진행한다면, 가격표를 그대로 판단 자료로 사용할 수 있습니다.
-
Claude Code Projects 입문, 코디네이터와 병렬 스레드 사용법
-
fable 별칭(alias)의 해결 경로 및 비용 내역을 Claude Code 2.1.258에서 실측함
-
Claude Fable 5 입문 — Mythos급 모델을 API로 사용하는 완벽 가이드
-
Models overview (Claude Docs)
-
Claude Fable 5.2 overview (Claude Docs)
-
Claude Fable 5.2의 신기능 (What's new) (Claude Docs)
-
Pricing (Claude Docs)
-
Fast mode (Claude Docs)
-
Effort (Claude Docs)
-
Preserved thinking (Claude Docs)
-
Refusals and fallback (Claude Docs)
-
Claude Fable 5.2와 Mythos 5.2 발표 페이지 (Anthropic)
-
Claude Code changelog