claude-fable-5를 연동해 배포했는데 모든 호출이 실패하기 시작했다면, 모델이 고장난 게 아닙니다 — 비활성화된 것이며, 원인은 코드와 전혀 관계없습니다.
Fable 5가 오프라인인 이유 — 수출 통제 지시 해설
Fable 5는 현재 미국 수출 통제 당국이 Anthropic에 중단을 명령해 이용할 수 없습니다. 2026년 6월 중순, 해당 지시는 국가 안보를 이유로 미국 내외를 막론하고 모든 외국 국적자에게 Fable 5와 Mythos 5를 차단하도록 Anthropic에 요구했습니다 . Anthropic은 실시간으로 외국 국적자와 미국 사용자를 구분할 수 없어 두 모델을 전 세계적으로 비활성화했습니다 — 모든 고객은 물론 자사 외국 국적 직원에게도 마찬가지였습니다 .
간단 요약: Fable 5와 Mythos 5는 2026년 6월 9일 출시 후, 미국 수출 통제 지시에 따라 6월 13일경 서비스가 중단되었습니다. Anthropic은 두 모델을 전 세계 모든 고객에게 비활성화했으며 — 복구 일정은 없습니다. Opus 4.8, Sonnet, Haiku는 정상 운영 중이며 영향을 받지 않습니다.
두 모델은 2026년 6월 9일 출시되어 약 4일 뒤 서비스가 중단되었습니다 . Anthropic은 Business Insider에 해당 지시의 "실질적 결과"가 모든 고객에 대한 모델의 "갑작스러운 비활성화"였다고 밝히면서, 위험성 평가와 절차 모두에 이의를 제기했다고 전했습니다 .
법적 근거는 신중하게 다뤄야 합니다: 해당 명령을 공식 확인한 BIS, 상무부, 백악관 페이지는 현재까지 공개되지 않았습니다. 서비스 중단은 TechCrunch, CNBC, MarkTechPost, Business Insider가 보도했으며 — Anthropic의 자체 플랫폼 문서에는 Fable 5가 여전히 일반 공개 상태로 나열되어 있습니다. 중단된 것은 Fable 5와 Mythos 5뿐이며, Opus 4.8, Sonnet, Haiku는 정상 운영됩니다 . 따라서 아래 통합 패턴을 구축하고 테스트할 수 있지만, Anthropic이 복구를 공식 확인할 때까지 프로덕션에서 Fable 5에 의존하지 마십시오.
사전 준비 사항

설정은 표준 Claude 온보딩과 동일합니다 — Fable 5를 위한 특별 계정 등급은 없습니다. console.anthropic.com에서 콘솔 계정을 만들고 API 키를 발급받으면 통합에 필요한 모든 것이 갖춰집니다 . 이미 Claude 모델을 호출하고 있다면 기존 자격 증명을 그대로 사용할 수 있습니다.
원시 HTTP 요청을 건너뛰려면 공식 SDK를 설치하세요. TypeScript/JS는 npm install @anthropic-ai/sdk, Python은 pip install anthropic을 사용하며, Go, Java, C# SDK도 제공됩니다 .
모델 ID는 플랫폼마다 다릅니다: Claude API와 Vertex AI에서는 claude-fable-5, Amazon Bedrock에서는 anthropic.claude-fable-5입니다 . 이들은 고정된 스냅샷 ID로, 에버그린 별칭이 아닙니다 — 새 가중치는 새 ID 문자열로 배포되므로, 하드코딩된 ID가 자동으로 업그레이드되지 않습니다.
Mythos 5는 셀프 서비스가 아닙니다. 액세스는 Anthropic, AWS, 또는 Google Cloud 어카운트 팀을 통해 Project Glasswing으로 중개되며, 공개 가입 경로는 없습니다 . 제한 접근 모델로 취급하고 Fable 5를 기준으로 개발하세요.
Fable 5 요청 보내기

Fable 5 호출은 일반적인 Messages API 요청과 동일합니다. model: "claude-fable-5", max_tokens 값(최대 128,000 출력 토큰), 그리고 messages 배열을 설정하면 됩니다 — 일반 Claude 호출과 동일한 구조입니다. 이 모델은 1M 토큰 컨텍스트 윈도우를 제공하며, 가격은 입력 토큰 100만 개당 $10, 출력 토큰 100만 개당 $50으로 Opus 4.8의 약 두 배 수준입니다. 프롬프트 캐싱은 별도로 과금됩니다.
- 5분 캐시 쓰기: $12.50/MTok
- 1시간 캐시 쓰기: $20/MTok
- 캐시 히트 및 갱신: $1/MTok
기존 모델에서 익숙했던 동작과 달라진 점이 세 가지 있습니다. 첫째, 적응형 사고(adaptive thinking)는 항상 활성화되어 있으며 유일한 사고 모드입니다. thinking: {"type": "disabled"}를 전달하면 오류가 발생하며 지원되지 않고, 수동 확장 사고 예산도 없습니다. 사고 깊이는 effort 파라미터로 조절합니다 . 둘째, 원시 추론 체인(chain-of-thought)은 반환되지 않습니다. thinking.display는 "summarized" 또는 "omitted"로 해석됩니다. 멀티턴 대화에서는 동일한 Fable 5 세션 내에서 thinking 블록을 그대로 전달해야 하지만, 대화 중간에 다른 모델로 전환할 경우에는 반드시 제거해야 합니다 — 그렇지 않으면 요청이 거부됩니다.
개발 전 알아야 할 컴플라이언스 사항이 있습니다. Fable 5와 Mythos 5 모두 30일 의무 데이터 보존이 적용되는 Covered Model입니다. 두 모델 모두 제로 데이터 보존(ZDR) 계약을 지원하지 않으므로, 계약상 ZDR이 필요한 워크로드에는 사용할 수 없습니다. 단, 문서에 따르면 보존된 데이터는 학습이나 안전 목적 외의 용도로는 사용되지 않습니다 .
거부 처리와 200 OK 함정

Fable 5의 안전 분류기가 요청을 거부할 때, API는 4xx나 5xx가 아닌 HTTP 200 성공 응답에 stop_reason: "refusal"을 담아 반환합니다 . HTTP 오류만 감지하는 에러 핸들러는 거부 응답을 정상 완료로 처리해 버리며, 결과적으로 빈 콘텐츠만 남고 아무런 신호도 받지 못합니다. 응답 콘텐츠나 null일 수 있는 stop_details가 아닌, stop_reason을 직접 분기해야 합니다 .
아래 코드는 검증된 예시로, 실제로 실행되며 이 함정을 보여줍니다. raise_for_status()만 호출하는 단순 핸들러는 None을 반환하고, 거부 인식 버전은 메시지를 검사해 거부 사실을 드러냅니다.
import json
class Response:
status_code = 200
def json(self):
return {
"model": "fable-5",
"choices": [
{
"message": {
"role": "assistant",
"refusal": "I can't help with that request.",
"content": None,
},
"finish_reason": "stop",
}
],
}
def raise_for_status(self):
if self.status_code >= 400:
raise RuntimeError(f"HTTP {self.status_code}")
def naive_handler(resp):
resp.raise_for_status()
return resp.json()["choices"][0]["message"].get("content")
def refusal_aware_handler(resp):
resp.raise_for_status()
msg = resp.json()["choices"][0]["message"]
if msg.get("refusal"):
raise ValueError(f"model refused: {msg['refusal']}")
return msg.get("content")
resp = Response()
print("HTTP status:", resp.status_code)
print("naive handler returned:", naive_handler(resp))
try:
refusal_aware_handler(resp)
except ValueError as exc:
print("refusal-aware handler caught:", exc)거부는 네 가지 문서화된 카테고리로 분류됩니다: cyber(익스플로잇 및 에이전트 해킹), bio(이중 용도 생물/화학), frontier_llm(모델 증류), reasoning_extraction . Anthropic에 따르면 안전장치는 전체 세션의 5% 미만에서만 작동합니다 . 즉 엣지 케이스이지만, 소리 없이 지나칩니다. 과금 시점도 중요합니다. 출력 스트리밍 전에 거부가 발생하면 과금되지 않으며 속도 제한에도 포함되지 않습니다. 반면 스트리밍 중간에 거부가 발생하면 입력 토큰과 이미 스트리밍된 출력 토큰이 과금되며, 핸들러는 해당 부분 출력을 버려야 합니다 .
이 처리 방식은 Fable 5에만 해당됩니다. Mythos 5는 안전 분류기 없이 출시되었으므로 stop_reason: "refusal"이 발생하지 않습니다 . 두 모델을 함께 라우팅하는 경우, 발생할 수 없는 상태를 검사하지 않도록 모델 ID를 기준으로 거부 분기를 조건 처리하세요.
effort 조정과 폴백 연결
거부(refusal) 처리가 끝나면, 실제 운영에서 Fable 5를 제어하는 두 가지 핵심 설정은 effort와 폴백입니다. Fable 5의 적응형 사고(adaptive thinking)는 항상 활성화되어 있으므로 수동 확장 사고 예산을 따로 설정할 필요가 없으며, 깊이는 effort 파라미터로 제어합니다 . high가 기본값이며, low·medium은 일상적인 작업이나 지연 시간에 민감한 작업에 적합하고, xhigh는 장기 에이전틱 작업을 위한 것이며, max는 가장 어려운 작업에 예약되어 있습니다 . effort를 높일수록 응답 지연 시간이 길어지고 출력 비용이 증가하며, 출력 토큰 100만 개당 $50로 청구됩니다 .
| effort | 사용 사례 | 트레이드오프 |
|---|---|---|
low / medium | 일상적인 작업 또는 지연에 민감한 작업 | 가장 빠르고 저렴한 출력 |
high (기본값) | 대부분의 작업 | 균형 |
xhigh | 장기 에이전틱 작업 | 응답 지연 증가 |
max | 가장 어려운 작업 | 최고 지연 및 비용 |
폴백 구성에서 가장 깔끔한 방법은 서버 측 폴백입니다: 베타 헤더 server-side-fallback-2026-06-01과 함께 fallbacks: ['claude-opus-4-8']을 전달하면 됩니다. 이 방법은 Claude API와 AWS의 Claude Platform에서만 작동하며, Message Batches·Bedrock·Vertex AI·Microsoft Foundry에서는 SDK 미들웨어 또는 수동 재시도가 필요합니다 . 폴백 전환 시 프롬프트 캐시 쓰기 비용을 환불받으려면 fallback-credit-2026-06-01 헤더를 추가하세요. 이렇게 하면 동일한 프롬프트의 캐시를 두 번 프라이밍하는 비용을 지불하지 않아도 됩니다 .
어려운 작업은 수 분, 자율 실행은 수 시간이 걸릴 수 있으므로, 타임아웃을 길게 설정하고 진행 상황 피드백을 위해 응답을 스트리밍하며 동기식 블로킹 하네스는 피하세요 . 핵심 요점: 지금 당장 전체 경로를 구축하세요 — effort 조정, 거부 분기 처리, 그리고 claude-opus-4-8로의 깔끔한 폴백 — 단, Anthropic이 복원을 확인할 때까지 Fable 5 실시간 트래픽은 차단된 것으로 간주하세요 .
자주 묻는 질문
Fable 5와 Mythos 5는 언제 다시 이용 가능해지나요?
공식적인 복원 일정은 없습니다. Anthropic은 2026년 6월 중순의 수출 통제 지시에 따라 외국 국적자의 접근을 중단했지만, 위험 분류 방식과 절차 모두에 이의를 제기했습니다 . Anthropic이 달리 확인하기 전까지는 플랫폼 모델 문서와 Anthropic 공지 채널에서 복원 공지를 모니터링하세요. 지금 바로 통합을 구축하되, 실시간 트래픽에는 의존하지 마세요.
왜 Anthropic은 외국 국적자만 차단하는 대신 Fable 5를 전 세계적으로 비활성화했나요?
실시간으로 미국 사용자에서 외국 국적자를 선별적으로 필터링할 수 없었기 때문입니다. 지시는 미국 내외를 불문하고 모든 외국 국적자에 대한 접근 중단을 명령했으므로, 이를 준수하는 유일한 방법은 두 모델을 전 세계적으로 비활성화하는 것이었습니다 — 모든 고객은 물론 Anthropic 소속 외국 국적 직원들에게도 마찬가지였습니다 . Business Insider는 Anthropic이 이 지시의 '실질적 효과'가 모든 고객에게 모델을 갑자기 비활성화하는 것이었다고 표현했다고 보도했습니다 .
stop_reason: "refusal"이란 무엇이며, API 오류와 어떻게 다른가요?
이는 Fable 5의 안전 분류기가 요청을 거부한 경우의 HTTP 200 성공 응답으로, HTTP 오류가 아닙니다 . 상태 코드만 확인하거나 raise_for_status()를 호출하는 표준 오류 핸들러는 이를 조용히 통과시켜 애플리케이션에 빈 콘텐츠를 전달합니다. stop_details는 null일 수 있으므로, content나 stop_details 대신 stop_reason에 명시적으로 분기하세요. 문서화된 거부 카테고리는 cyber, bio, frontier_llm, reasoning_extraction이며, Anthropic은 세이프가드가 5% 미만의 세션에서 작동한다고 보고합니다 .
이번 중단이 Opus 4.8, Sonnet, Haiku에도 영향을 미치나요?
아니요. 지시는 Fable 5와 Mythos 5만을 대상으로 했습니다. 다른 모든 Anthropic 모델 — Opus 4.8, Sonnet, Haiku — 은 장애 기간 내내 온라인 상태를 유지하며 영향을 받지 않았습니다 . claude-opus-4-8이 권장 폴백 대상인 이유가 바로 이것입니다: 현재 트래픽을 처리 중인 가장 가까운 최상위 모델이며, Fable 5가 차단된 상태에서도 폴백 경로가 계속 작동합니다.
Fable 5와 Mythos 5의 차이점은 무엇인가요?
두 모델은 동일한 기반 가중치, 100만 토큰 컨텍스트 창, 최대 128k 출력 토큰, 그리고 입력 토큰 100만 개당 $10·출력 토큰 100만 개당 $50의 동일한 가격 정책을 공유합니다 . 유일한 차이점은 안전 게이팅입니다: Fable 5(claude-fable-5)에는 안전 분류기가 포함되어 있어 stop_reason: "refusal"이 적용됩니다. Mythos 5(claude-mythos-5)에는 해당 분류기가 없으며 Project Glasswing을 통해 제한적으로 제공됩니다 — 셀프서비스가 아닌 Anthropic·AWS·Google Cloud 계정 팀을 통해 접근 권한을 얻어야 합니다 .