본문 바로가기

Claude

Claude Fable 5, 19일 만에 사용 재개

반응형

2026년 6월 12일, Anthropic은 출시한 지 사흘 만에 Fable 5와 Mythos 5를 전 세계에서 내렸습니다. 미 상무부의 수출통제 명령 때문이었는데, 6월 30일 그 명령이 풀리면서 7월 1일부터 다시 쓸 수 있게 됐습니다.

 

이 사건이 눈여겨볼 만한 이유는 단순한 서비스 장애가 아니라는 데 있습니다. 최상위급 모델이 정부 승인 절차에 걸려서 세계적으로 접속이 끊긴 사례는 이번이 처음이었고, 비슷한 시기에 OpenAI도 GPT-5.6을 정부 협의를 거쳐 제한 프리뷰로만 공개하는 모습을 보였습니다. 즉 프런티어 모델 배포 방식 자체가 바뀌고 있다는 신호로 읽히는 사건입니다. 아래에서 타임라인부터 원인, 그리고 지금 개발자가 실제로 코드 레벨에서 확인하고 대비해야 할 것들까지 정리해봤습니다.

 

Fable 5와 Mythos 5는 6월 9일 나란히 공개됐습니다.

두 모델은 같은 가중치를 공유하는데, Fable 5는 일반 공개용으로 사이버보안·생물학 관련 위험한 요청은 자동으로 Opus 4.8로 우회시키는 안전장치가 들어가 있고, Mythos 5는 Project Glasswing을 통해 소수의 신뢰 기관에만 제공되는 버전으로 이 안전장치가 빠져 있습니다.

그런데 출시 사흘 만인 6월 12일, 미 상무부가 두 모델 모두 외국인 접근을 전면 차단하라는 수출통제 명령을 내렸고, Anthropic은 실시간으로 국적을 확인할 방법이 없다는 이유로 전 세계 사용자 전체를 대상으로 서비스를 중단했습니다. 이 결정으로 회사 소속 외국 국적 직원들까지 자사 모델에 접근하지 못하는 상황이 벌어졌습니다.

명령의 배경에는 Amazon 소속 연구자들이 발견한 탈옥 기법이 있었는데, 이 프롬프트가 Fable 5로 하여금 소프트웨어 취약점을 짚어내고 일부는 취약점을 악용하는 코드까지 작성하게 만들었다는 게 핵심이었습니다. 정지 기간 동안 Anthropic은 해당 기법을 99% 이상 차단하는 새 분류기를 학습시켰고, 6월 26일에는 중요 인프라를 방어하는 미국 내 기관 약 100곳에 한해 Mythos 5 접근이 부분적으로 재개됐으며, 6월 30일 상무부 장관 Howard Lutnick이 양쪽 모델 모두에 대한 수출 라이선스 요건을 철회하면서 7월 1일 Claude.ai, Claude Platform, Claude Code, Claude Cowork 전반에 Fable 5가 전 세계 사용자 대상으로 복귀했습니다.

Mythos 5는 여전히 승인받은 미국 기관에만 제한적으로 제공되는 상태입니다.

내 계정에서 Fable 5가 실제로 호출되는지 확인하기

정지-재개를 겪은 모델이다 보니, 코드에서 하드코딩한 모델명이 여전히 유효한지부터 확인하는 게 순서입니다.

Fable 5는 claude-fable-5라는 모델 ID로 API·Claude Platform·AWS Bedrock·Google Cloud·Microsoft Foundry에서 호출할 수 있고, Mythos 5는 별도 승인 없이는 호출 자체가 막혀 있습니다. 아래는 Python으로 간단히 응답 여부를 찍어보는 코드입니다.

import anthropic

client = anthropic.Anthropic()

try:
    response = client.messages.create(
        model="claude-fable-5",
        max_tokens=100,
        messages=[{"role": "user", "content": "핑 테스트입니다. 짧게 답해주세요."}]
    )
    print("접근 가능:", response.content[0].text)
except anthropic.APIStatusError as e:
    print("접근 불가 또는 에러:", e.status_code, e.message)

 

호출이 정상적으로 200을 반환하면 해당 리전·플랜에서 Fable 5 접근이 복구됐다는 뜻이고, 403이나 관련 에러가 뜨면 아직 그 클라우드 경로가 순차 복구 중일 가능성이 큽니다.

특히 AWS Bedrock, Google Vertex AI, Microsoft Foundry 경유는 Anthropic이 "최대한 빠르게" 복구한다고만 밝혔을 뿐 정확한 일정을 못박지 않았기 때문에, 프로덕션 파이프라인이라면 이런 헬스체크를 배포 전에 한 번 돌려보는 게 안전합니다.

refusal 응답을 감지하고 자동으로 폴백하는 코드

Fable 5의 가장 큰 특징은 사이버보안·생물학 등 위험 분류기가 걸리면 요청 자체를 거부한다는 점입니다. 이때 API는 에러가 아니라 stop_reason: "refusal"을 포함한 정상 200 응답을 돌려주기 때문에, try-except가 아니라 응답 내용을 직접 분기 처리해야 합니다. 아래 코드는 refusal을 감지했을 때 Opus 4.8로 재시도하는 클라이언트 사이드 폴백 예시입니다.

def call_with_fallback(prompt, primary="claude-fable-5", fallback="claude-opus-4-8"):
    response = client.messages.create(
        model=primary,
        max_tokens=1024,
        messages=[{"role": "user", "content": prompt}]
    )
    
    if response.stop_reason == "refusal":
        print(f"{primary}가 요청을 거부함. {fallback}로 재시도합니다.")
        response = client.messages.create(
            model=fallback,
            max_tokens=1024,
            messages=[{"role": "user", "content": prompt}]
        )
    
    return response

 

실무에서는 이걸 직접 짜지 않고 API의 fallbacks 파라미터(현재 베타, Claude API와 AWS Bedrock 지원)를 쓰면 서버 사이드에서 알아서 재시도해줍니다. 코딩·디버깅같이 원래 안전한 요청인데도 분류기가 오탐하는 경우가 종종 있다고 공식 문서에 명시돼 있기 때문에, 보안·코드 분석 관련 기능을 서비스에 붙여놨다면 이 폴백 로직은 선택이 아니라 필수로 봐야 합니다.

Fable 5와 Mythos 5, 뭐가 다른가

항목 Fable 5 Mythos 5
공개 범위 일반 공개(GA) Project Glasswing 승인 기관만
안전 분류기 있음 (위험 요청 시 Opus 4.8로 우회) 없음
stop_reason: "refusal" 발생 가능 발생하지 않음
데이터 보관 30일 (ZDR 불가, Covered Model) 동일
컨텍스트/출력 1M 토큰 / 128k 출력 동일

결론

이번 사태는 단순 해프닝으로 끝날 이야기가 아닙니다. 모델 능력이 일정 임계값을 넘으면 상업적 출시가 아니라 국가 안보 심사를 거치는 배포 방식이 자리 잡는 흐름을 보여줬고, 개발자 입장에서는 모델 ID나 접근 권한이 정책 변화로 하루아침에 바뀔 수 있다는 걸 실감한 사건이기도 합니다.

실무 파이프라인이라면 모델 헬스체크와 refusal 폴백 로직을 지금 미리 넣어두는 게, 다음에 비슷한 일이 벌어졌을 때 서비스가 통째로 멈추는 걸 막는 가장 현실적인 대비책입니다.

 

반응형