Claude Fable 5.1 및 Claude Mythos 5.1로 마이그레이션하기
Claude Fable 5, Claude Mythos 5, Claude Opus 5 또는 Claude Opus 4.8에서 Claude Fable 5.1 및 Claude Mythos 5.1로 마이그레이션하기: 모델 ID, 호환성이 깨지는 변경 사항, 마이그레이션 체크리스트.
Claude Fable 5.1은 Claude Fable 5의 후속 모델로, 입력 및 출력 가격은 동일하며 캐시 읽기 비용은 4분의 1입니다. Claude API, Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry에서 사용할 수 있습니다. Claude Mythos 5.1은 동일한 기능을 공유하며 Project Glasswing의 승인된 고객에게만 제공됩니다. 동작 차이와 프롬프트 패턴에 대해서는 Claude Fable 5.1 프롬프트 작성하기를 참조하세요.
claude-fable-5-1과 claude-mythos-5-1이 공유하는 기본 설정:
- 사고(Thinking): 적응형 사고(adaptive thinking)는 항상 켜져 있으며, Claude Fable 5와 동일합니다. 모델이 언제, 얼마나 사고할지 결정합니다.
thinking구성은 필요하지 않습니다.thinking: {type: "disabled"}와 수동 "extended thinking"(확장 사고)(thinking: {type: "enabled", budget_tokens: N}) 모두 400 오류를 반환합니다. - 프리필(Prefill): 어시스턴트 메시지를 프리필하면 400 오류가 반환되며, Claude Fable 5와 동일합니다. 대신 시스템 프롬프트 지침을 사용하세요.
- 도구 선택(Tool choice):
{type: "auto"}(기본값)와{type: "none"}이 지원됩니다.{type: "any"}또는{type: "tool", name: "..."}로 도구 호출을 강제하면 400 오류가 반환됩니다. 호환성이 깨지는 변경 사항을 참조하세요. - 모델 간 보존된 사고(Preserved thinking): Claude Fable 5.1은 Claude Opus 5, Claude Fable 5, Claude Mythos 5 및 이전 Claude 모델의 thinking 블록을 읽습니다. 이들 모델 중 어느 것도 Claude Fable 5.1의 블록을 읽을 수 없습니다. 호환성이 깨지는 변경 사항을 참조하세요.
- 컨텍스트 윈도우 및 출력: 기본적으로 1M 토큰 "context window"(컨텍스트 윈도우)를 제공하며, 요청당 최대 128k 출력 토큰을 지원합니다.
- 가격: 입력 토큰 백만 개당 $10 USD, 출력 토큰 백만 개당 $50 USD로 Claude Fable 5와 동일합니다. 프롬프트 캐시 읽기는 토큰 백만 개당 $0.25 USD로, Claude Fable 5 요금의 4분의 1입니다. Claude 가격을 참조하세요.
- 데이터 보존: 두 모델 모두 30일 데이터 보존이 필요하며, Anthropic이 명시적으로 승인하지 않는 한 "zero data retention"(제로 데이터 보존), 즉 ZDR 계약 하에서는 사용할 수 없고, Claude Fable 5 및 Claude Mythos 5와 마찬가지로 Covered Models로 지정됩니다. Claude API에서 30일 보존이 설정되지 않은 조직 또는 워크스페이스의 요청은 400
invalid_request_error를 반환합니다. ZDR 계약이 있는 조직은 Anthropic 계정 팀에 문의하거나 워크스페이스별로 보존을 구성해야 합니다. 플랫폼별 세부 사항은 모델별 데이터 보존 요구 사항을 참조하세요.
두 모델이 다른 점:
- 가용성: Claude Fable 5.1은 액세스 승인이 필요하지 않습니다. Claude Mythos 5.1은 Project Glasswing의 승인된 고객에게만 제공됩니다. 액세스하려면 Anthropic 계정 팀에 문의하세요.
- 안전 분류기: Claude Fable 5.1은 Claude Fable 5와 동일한
stop_details카테고리를 다루는 안전 분류기를 실행합니다. 거부된 요청은stop_details.category와 함께stop_reason: "refusal"을 반환하며,fallbacks매개변수 또는 클라이언트 측 재시도를 통해 다른 모델로 폴백할 수 있습니다. 거부 및 폴백을 참조하세요. - Priority Tier: 두 모델 모두 Priority Tier에서 지원되지 않습니다. Claude Fable 5는 지원됩니다.
Claude Fable 5에서 Claude Fable 5.1로 마이그레이션하기
마이그레이션은 대부분 그대로 교체(drop-in)하면 됩니다. API 표면, 제한, 토큰당 가격, 토크나이저, 항상 켜져 있는 적응형 사고, 거부 처리, stop_details 카테고리가 모두 Claude Fable 5와 일치합니다. 변경되는 점: 강제 도구 선택은 400 오류를 반환하고, thinking 블록은 이를 생성한 모델 또는 더 새로운 모델에 대해서만, 그리고 이를 생성한 대화 내에서만 보존되며, 캐시 읽기 비용이 낮아지고, 에이전트 루프 동작이 세 가지 면에서 다릅니다. 동일한 변경 사항이 Claude Mythos 5.1에도 적용되지만, thinking 블록에 대한 대화 검사는 예외이며 Claude Mythos 5.1은 이를 실행하지 않습니다.
모델 이름 업데이트
model = "claude-fable-5" # Before
model = "claude-fable-5-1" # After
# 또는 동일한 기능을 갖춘 Project Glasswing 모델의 경우:
model = "claude-mythos-5-1" # After호환성이 깨지는 변경 사항
-
강제 도구 선택은 지원되지 않습니다: Claude Fable 5는
tool_choiceauto,none,any,tool을 허용합니다.claude-fable-5-1에서는{type: "any"}와{type: "tool", name: "..."}이 400invalid_request_error를 반환합니다:tool_choice: type "tool" and "any" are not supported for this model.이 검사는 Messages API, Message Batches API, 토큰 카운팅 엔드포인트에 적용됩니다.
이전 (Claude Fable 5):
client = anthropic.Anthropic() record_summary_tool = { "name": "record_summary", "description": "Record the structured summary of the document.", "input_schema": { "type": "object", "properties": {"summary": {"type": "string"}}, "required": ["summary"], }, } response = client.messages.create( model="claude-fable-5", max_tokens=16000, tools=[record_summary_tool], tool_choice={"type": "tool", "name": "record_summary"}, messages=[{"role": "user", "content": "Summarize: The meeting moved to Thursday."}], ) print(response.content)이후 (Claude Fable 5.1):
tool_choice를auto로 두고, 지침에서 도구 이름을 명시하고, 호출이 스키마와 일치하도록strict: true를 설정하세요. (CMEK 조직에서는strict: true를 포함한 구조화된 출력을 Claude Fable 모델에서 사용할 수 없으므로 지침에만 의존하세요.) 예를 들어:client = anthropic.Anthropic() record_summary_tool = { "name": "record_summary", "description": "Record the structured summary of the document.", "strict": True, "input_schema": { "type": "object", "properties": {"summary": {"type": "string"}}, "required": ["summary"], "additionalProperties": False, }, } response = client.messages.create( model="claude-fable-5-1", max_tokens=16000, tools=[record_summary_tool], tool_choice={"type": "auto"}, messages=[ { "role": "user", "content": "Summarize: The meeting moved to Thursday. Call the record_summary tool with your result.", } ], ) print(response.content)엄격한 도구 사용 및 도구 사용 강제하기를 참조하세요. 스키마를 준수하는 JSON을 얻기 위해서만 도구를 강제했다면, 대신 JSON 출력(
output_config.format)을 사용하세요.사용자가 아닌 애플리케이션이 멀티턴 대화의 현재 턴에서 특정 도구 호출을 요구하는 경우, 최신
user턴 뒤에 대화 중간 시스템 메시지를 추가하세요. 도구 이름을 명시하고, 이 턴에서 호출이 필수라고 말하고, Claude에게 응답을 해당 호출로 시작하라고 지시하세요. 메시지가 최상위system프롬프트에 작성되는 것이 아니라 추가되기 때문에, 이전 턴은 바이트 단위로 동일하게 유지되며 "prompt caching"(프롬프트 캐싱) 히트를 유지합니다:client = anthropic.Anthropic() search_help_center_tool = { "name": "search_help_center", "description": "Search the help center for policy and troubleshooting articles.", "strict": True, "input_schema": { "type": "object", "properties": {"query": {"type": "string"}}, "required": ["query"], "additionalProperties": False, }, } response = client.messages.create( model="claude-fable-5-1", max_tokens=16000, system="You are a customer support assistant for an online electronics store.", tools=[search_help_center_tool], messages=[ { "role": "user", "content": "My headphones from order A1234 arrived yesterday.", }, { "role": "assistant", "content": "Thanks for confirming. How can I help with order A1234?", }, {"role": "user", "content": "I opened the box. Can I still return them?"}, # 애플리케이션은 정책 관련 답변 전에 반드시 도움말 센터 조회를 # 요구합니다. 이 요구 사항을 시스템 메시지로 추가하면 # 이전 턴은 변경되지 않은 채로 유지됩니다. { "role": "system", "content": "Tool-use requirement for the current turn: the application requires a call to the search_help_center tool in your response to the user's latest message. Begin your response with the search_help_center tool call. Do not reply with text only.", }, ], ) print(response.content)다른 턴과 마찬가지로 이후 요청에서도
role: "system"메시지를 히스토리에 유지하세요. 대화 중간 시스템 메시지에는 베타 헤더가 필요하지 않습니다. 도구를 호출해서는 안 되는 턴에는tool_choice: {"type": "none"}이 여전히 작동합니다. -
Thinking 블록은 이를 생성한 모델 또는 더 새로운 모델에 대해서만 보존됩니다: 모든
thinking블록은 어떤 모델이 이를 생성했는지 기록합니다. Claude Fable 5.1은 자체 블록과 Claude Mythos 5.1, Claude Opus 5, Claude Fable 5, Claude Mythos 5 및 이전 Claude 모델의 블록을 읽습니다. 이들 중 어느 모델에서든claude-fable-5-1로 이동하는 대화는 이전 추론을 유지합니다. 이 조건은 단방향입니다: Claude Mythos 5.1을 제외하고, 이들 모델 중 어느 것도 Claude Fable 5.1의 블록을 읽을 수 없습니다.Claude Fable 5.1에서 실행된 대화는 라우터 전환, 클라이언트 측 재시도 또는 서버 측 폴백을 포함한 분류기 거부 폴백을 통해 이전 모델로 넘어갈 수 있습니다. API는 해당 모델이 읽을 수 없는 블록을 모델이 보기 전에 제거하고, 요청은 성공하며, 삭제된 입력 토큰에 대해서는 요금이 청구되지 않습니다. 대상 모델은 해당 추론 없이 다시 계획을 세우므로, 전환 후 첫 번째 턴에서 비용과 지연 시간이 증가할 수 있습니다. 무엇이 삭제되었는지 확인하려면
thinking-binding-controls-2026-08-01베타 헤더를 전송하세요: 그러면 응답에reason: "model_binding_mismatch"와 함께 삭제된 각 블록을 명시하는input_transformations배열이 포함됩니다. 보존된 사고를 참조하세요. -
이전 턴을 편집하면 thinking 블록이 무효화됩니다: Claude Fable 5.1의 각
thinking블록은 그 앞에 있던system프롬프트,tools, 대화 히스토리에 대해서만 유효합니다. Claude Code, claude.ai, Claude Managed Agents 또는 Claude Agent SDK가 대화 히스토리를 관리하는 경우, 이미 해당 접두사를 그대로 유지합니다. 코드가messages배열을 직접 구성하는 경우 이 항목이 적용되며, 보존된 사고가 전체 통합 가이드입니다. 검사가 시행되는 경우, 이들 중 하나라도 변경된 후 블록을 다시 전송하는 요청은 400 오류로 거부됩니다:messages.5.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block". That setting requires the `thinking-binding-controls-2026-08-01` value in the `anthropic-beta` header.API는 2026년 8월 31일 이후에 생성된 새 계정에 대해 이 검사를 시행합니다. 그 이전에 생성된 계정의 경우, API는 불일치를 기록하지만 요청이
thinking.block_binding.prefix_mismatch_behavior를 설정하여 시행을 선택하지 않는 한 조치를 취하지 않습니다. Anthropic은 향후 모델에서 모든 계정에 대해 이 검사를 시행할 계획이므로, 지금 애플리케이션을 호환되도록 만드세요: 동일한 패턴이 프롬프트 캐시를 따뜻하게 유지하며,prefix_mismatch_behavior를 전송하여 어느 계정에서든 검사를 테스트할 수 있습니다. 사람들이 자신의 API 키로 실행하는 도구나 프레임워크를 배포하는 경우, 출시 전에 이 방식으로 테스트하세요: 여러분의 키는 아마도 오래된 계정에 있을 것이고, 새 계정의 사용자들이 여러분보다 먼저 검사에 걸리게 됩니다. 자신의 계정이 기본적으로 시행 대상인지 확인하려면, 베타 헤더 없이 히스토리를 편집하는 요청을 전송하세요: 헤더를 명시하는 400이 반환되면 시행 대상입니다.이 오류는 해당 요청 본문에 대해 영구적입니다: 자동 재시도 루프로는 해결되지 않습니다. 실패하는 대신 무효화된 추론 없이 계속하려면, 히스토리에서
thinking블록을 제거하고 한 번 재시도하거나,thinking-binding-controls-2026-08-01베타 헤더를 전송하고prefix_mismatch_behavior를"drop_block"으로 설정하세요(기본값은"error")."drop_block"을 사용하면 API는 불일치하는 블록과 대화에서 그 이후의 모든 thinking 블록을 삭제하고, 응답의input_transformations배열에 각각을reason: "prefix_binding_mismatch"와 함께 보고합니다:client = anthropic.Anthropic() response = client.beta.messages.create( model="claude-fable-5-1", max_tokens=16000, thinking={ "type": "adaptive", "block_binding": {"prefix_mismatch_behavior": "drop_block"}, }, messages=[ { "role": "user", "content": "What is the greatest common divisor of 1071 and 462?", } ], betas=["thinking-binding-controls-2026-08-01"], ) for block in response.content: if block.type == "text": print(block.text) print(f"Input transformations: {len(response.input_transformations or [])}")토큰 카운팅 엔드포인트도 동일한 검사를 실행합니다. 응답 형태와 스트리밍 배치에 대해서는 보존되지 않는 블록에 대한 제어(베타)를 참조하세요.
이후 thinking 블록을 무효화하는 패턴과 대신 해야 할 일:
- 이전 턴을 편집, 재정렬 또는 제거하는 것. 여기에는 오래된 도구 결과 삭제, 트랜스크립트 중간에서 턴을 잘라내는 것, 요약 뒤에 최근 턴과 그 thinking 블록을 그대로 유지하는 클라이언트 측 압축(몇 턴 후에 요약을 교체해 넣는 백그라운드 압축 포함)이 포함됩니다. 대신 서버 측 압축(compaction) 또는 컨텍스트 편집(오래된 도구 결과에는 도구 결과 지우기)을 사용하거나, 서버에서 컨텍스트 다듬기의 클라이언트 측 압축 형태 중 하나를 사용하세요.
- 유지하지 않는 콘텐츠를 주입하는 것. 예를 들어
tool_result블록 뒤에 추가되고 다음 요청에서 제거되는 턴별 리마인더. 대신 리마인더를 턴 범위 시스템 메시지로 전송하고 히스토리에 남겨두세요. - 동일한 대화 내 요청 사이에 최상위
system프롬프트 또는tools배열을 재구성하는 것. 예를 들어 현재 날짜를 업데이트하거나 도구를 추가 또는 제거하기 위해. 대신 새 지침("The current date is 2026-09-14.") 또는tool_addition및tool_removal블록을 담은 대화 중간 시스템 메시지를 추가하세요. - 이후 요청에서 다른 바이트를 제공하는 이미지 또는 문서 URL. 검사는 URL 문자열이 아닌 바이트를 대상으로 하므로, 동일한 파일에 대한 순환 서명 URL은 괜찮습니다. 여러 턴에 걸쳐 참조하는 콘텐츠의 경우, Files API로 한 번 업로드하고
file_id를 전송하거나 base64를 전송하세요.
각 대체 방법은 또한 이전 턴을 바이트 단위로 동일하게 유지하며, 히스토리,
system프롬프트 또는tools배열을 편집하면 잃게 될 프롬프트 캐시 히트를 보존합니다.계속 작동하는 패턴:
- 추가 전용(append-only) 히스토리: 턴을 추가하고 이전 턴을 전송 및 수신한 그대로 정확히 다시 전달하는 것. 추가된
role: "system"메시지 포함. - 이전 어시스턴트 턴에서 thinking 블록을 가장 오래된 것부터 제거하는 것.
effort,max_tokens또는system,tools,messages외부의 다른 요청 매개변수를 변경하는 것, 그리고cache_control마커를 추가하거나 이동하는 것.- thinking 블록 지우기를 포함한 서버 측 압축 및 컨텍스트 편집. 검사는 여러분이 전송한 대로의 대화를 비교하므로 이들은 편집으로 간주되지 않습니다.
기존 통합을 확인하려면:
- 제품에 압축이나 도구 변경이 있다면 이를 포함하여, 몇 번의 일반적인 턴에 걸쳐 전송하는 정확한 요청 본문을 캡처하세요. 연속된 각 요청 쌍에 대해
system프롬프트,tools배열,messages의 공유 접두사를 비교하세요. 새로 추가된 턴까지는 바이트 단위로 동일해야 합니다. thinking-binding-controls-2026-08-01베타 헤더와prefix_mismatch_behavior: "drop_block"을 사용하여claude-fable-5-1에 대해 일반적인 멀티턴 세션을 실행하고, 모든 응답에서input_transformations를 로깅하세요. 모든 턴에서 빈 배열이면 히스토리가 온전하다는 의미입니다.reason: "prefix_binding_mismatch"가 있는 항목은 이전 요청 이후path에 있는 블록 앞의 무언가가 변경되었음을 의미합니다.reason: "model_binding_mismatch"가 있는 항목은 대화가 모델을 전환했음을 의미하며, 이는 코드의 버그가 아닙니다. 필드를 설정하면 요청이 시행 대상으로 선택되므로 이는 어느 계정에서든 작동합니다. CI에서는 편집이 실행을 실패시키도록 대신"error"를 설정하세요.- 프로덕션 설정을 선택하세요. 접두사 불일치가 코드의 버그만을 의미할 수 있다면 기본값
"error"를 그대로 두고, 실패하는 대신 영향받은 블록을 삭제하려면"drop_block"을 설정하세요. 어느 쪽이든 400 또는input_transformations항목을 모니터링하세요.
예를 들어 압축 경계에서 thinking 블록을 한 번 삭제하는 것은 영향이 거의 없습니다. 모든 요청에서 이전 사고를 무효화하는 통합은 매번 프롬프트 캐시를 다시 시작하므로 작업당 비용이 증가할 수 있습니다(대화 히스토리를 추가 전용으로 유지하기 참조).
동작 변경 사항
-
긴 에이전트 루프에서 병렬 도구 호출 감소: 다음 독립적인 읽기가 작업에 의해 암시되기만 하는 장기 실행 루프(커스텀 코딩 에이전트, bash 및 에디터 하네스, 컴퓨터 사용)에서 Claude Fable 5.1은 턴당 하나의 도구 호출을 발행할 수 있습니다. 추가 턴마다 토큰, 왕복, 실제 경과 시간이 소요됩니다. 각 사용자 메시지 뒤에 한 문장의 배치 지침을 턴 범위 시스템 메시지(
clear_at: "next_user_message", 베타)로 추가하거나, 베타 없이는tool_result블록 뒤의 텍스트 블록에 추가하고, 이후 요청에서 이전 사본을 히스토리에 남겨두세요. 에이전트 루프에서 독립적인 도구 호출 배치하기를 참조하세요. -
도구 호출 사이의 진행 메시지 감소: Claude Fable 5.1은 긴 도구 시퀀스 동안 Claude Fable 5보다 상태 업데이트를 적게 작성하며, 에이전트 코딩 요약이 더 짧습니다. 인터페이스가 이러한 업데이트를 렌더링한다면,
thinking.display를"updates"(베타) 또는"summarized"로 설정하고 명시적으로 프롬프트하세요. 도구 호출 사이의 진행 업데이트 및 사용자 대상 진행 업데이트 요청하기를 참조하세요. -
낮은 effort에서 검색 및 검색(retrieval) 호출 감소:
loweffort에서 Claude Fable 5.1은 검색 또는 검색(retrieval) 도구를 호출하는 대신 Claude Fable 5보다 더 자주 기억에서 답변합니다. 제품이 낮은 effort에서 검색(retrieval)에 의존한다면, 해당 요청의 effort를 높이거나 모델에게 언제 검색할지 알려주세요. 낮은 effort에서의 검색 트리거를 참조하세요.
API 통합에 영향을 주지 않는 산문 밀도, 채팅 서식, 요약에서의 인용, 파일 편집의 차이에 대해서는 Claude Fable 5에서 변경된 사항을 참조하세요.
권장 변경 사항
이러한 변경 사항은 필수는 아니지만, 각각 비용이나 지연 시간을 낮추거나 실패 모드를 제거합니다:
-
대화 중간에 effort 변경하기(베타): Claude Fable 5에서
output_config.effort는 요청 수준이며, 요청 사이에 이를 변경하면 이전 턴의 캐시된 접두사가 삭제됩니다.claude-fable-5-1에서는output_config만 담은role: "system"메시지가 프롬프트 캐시를 무효화하지 않고 어려운 단계에서는 effort를 높이고 일상적인 단계에서는 낮춥니다:client = anthropic.Anthropic() response = client.beta.messages.create( model="claude-fable-5-1", max_tokens=4096, output_config={"effort": "high"}, messages=[ { "role": "user", "content": "Plan a migration from SQLite to PostgreSQL in three short steps.", }, { "role": "assistant", "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.", }, # effort 전용 시스템 메시지: 새 수준은 다음 사용자 턴부터 적용됩니다. {"role": "system", "content": [], "output_config": {"effort": "low"}}, {"role": "user", "content": "Summarize the plan in one sentence."}, ], betas=["mid-conversation-output-config-2026-07-01"], ) for block in response.content: if block.type == "text": print(block.text)이 값은 다음 사용자 턴과 다른
role: "system"메시지가 이를 변경할 때까지 이후의 모든 턴에 적용됩니다. 명명된 수준(low,medium,high,xhigh,max)만 허용되며,mid-conversation-output-config-2026-07-01베타 헤더가 필요합니다. 메시지별 effort를 참조하세요. -
대화 중간 시스템 메시지로 지침과 도구 변경하기: 세션 도중에 지침이나 도구를 변경하려면,
role: "system"메시지를 추가하고, 도구 변경에는tool_addition및tool_removal블록을 사용하세요(베타 헤더mid-conversation-tool-changes-2026-07-01, 세션 시작 시tools에 전체 도구 세트 선언). 이는 이전 턴의 프롬프트 캐시 히트를 보존하고 대화 히스토리를 추가 전용으로 유지합니다. 현재 턴에서 특정 도구가 실행되어야 할 때 동일한 메시지가 강제tool_choice를 대체합니다(호환성이 깨지는 변경 사항 참조). 한 턴에만 적용되는 리마인더의 경우,clear_at: "next_user_message"가 있는 별도의 텍스트 전용role: "system"메시지로 전송하고(턴 범위 시스템 메시지, 베타 헤더mid-conversation-system-clear-at-2026-08-21) 히스토리에 남겨두세요: 다음 사용자 메시지 이후 렌더링이 중지되며 지워진 후에는 토큰 비용이 들지 않습니다.tool_addition또는tool_removal블록을 담은 메시지는 턴 범위로 지정할 수 없습니다. -
거부에
fallbacks: "default"사용하기: 계속해서stop_reason: "refusal"을 처리하고 응답 콘텐츠 전에stop_details.category를 읽으세요. 거부된 요청을 다른 모델에서 자동으로 다시 실행하려면fallbacks: "default"를 설정하세요(베타,server-side-fallback-2026-07-01헤더)."default"는 거부된 요청을 Anthropic이 해당 카테고리에 권장하는 모델에서 재시도합니다. Claude Fable 5.1에 허용되는 폴백 대상은 Claude Opus 4.8(claude-opus-4-8)과 Claude Opus 5(claude-opus-5)입니다. 명시적fallbacks목록은 둘 중 어느 것이든 지정할 수 있습니다. 폴백 모델은 Claude Fable 5.1의 thinking 블록을 받지 않습니다. 재시도를 직접 구축하는 경우, 폴백 크레딧이 Claude Fable 5와 동일한 조건으로 적용됩니다. 거부 및 폴백을 참조하세요. -
higheffort에서 시작하여 스윕하기: effort 매개변수 기본값은high이며, 다섯 가지 수준 모두 지원됩니다. Claude Fable 5 지침을 유지하세요: 대부분의 작업에는high, 테스트해 볼 만한 비용 제어로는medium. Claude Fable 5 대비 Claude Fable 5.1의 향상은xhigh와max에서 가장 크지만, 이 수준들은 사고 시간과 첫 응답까지의 시간도 늘리므로, 가장 기능에 민감한 작업과 평가에서 향상이 나타나는 곳에서 이 수준으로 올리세요. Claude Fable 5에 맞춰 조정된 설정을 그대로 가져오지 말고 자체 평가에서 새로 스윕을 실행하세요. Claude Fable 5.1 권장 effort 수준을 참조하세요. -
서버에서 컨텍스트를 다듬거나, 오래된 사고를 담지 않는 형태로 압축하기: 코드가 클라이언트에서 오래된 턴을 잘라내거나 요약한다면, 가장 간단한 해결책은 해당 작업을 서버 측 압축 또는 컨텍스트 편집으로 옮기는 것입니다. 히스토리 검사는 여러분이 전송한 대로의 대화를 비교하므로 둘 다 편집으로 간주되지 않으며, 따라서 이들이 제거하는 어떤 것도 이후 thinking 블록을 무효화하지 않고, 압축의
instructions매개변수는 자체 요약 프롬프트를 허용합니다. 클라이언트에서 압축을 유지한다면, 세 가지 형태 중 하나를 선택하세요:- 단순 압축(권장): 전체 히스토리를 하나의 요약 메시지와 새 사용자 턴으로 교체하고 다른 것은 아무것도 재생하지 않습니다. thinking 블록이 이월되지 않으므로 아무것도 실패하지 않습니다. Claude 모델은 이 방식으로 장기 작업에 대해 학습되었으며, 대부분의 워크로드에서 더 정교한 방식과 비슷한 성능을 냅니다.
- 꼬리 유지(keep-tail) 압축: 요약 뒤에 가장 최근 턴을 그대로 유지한다면, 해당 턴에서
thinking및redacted_thinking블록을 제거하거나(텍스트와 도구 호출은 남겨둘 수 있음),prefix_mismatch_behavior: "drop_block"을 설정하세요. 그 사고는 전체 히스토리에 대해 생성되었으므로 그렇지 않으면 요약 뒤에서 실패합니다. - 백그라운드 압축: 요약을 임계 경로 밖에서 구축하고 나중에 교체해 넣는다면, 그 사이에 생성된 모든 턴은 교체 이전의 사고를 담고 있습니다. 교체 전에 생성된 thinking 블록을 여전히 담고 있는 모든 요청에
"drop_block"을 전송하거나(또는 해당 블록을 직접 제거하세요; 교체 후 첫 번째 응답의input_transformations가 정확히 어떤 블록인지 나열합니다), 동기적으로 압축하세요.
트랜스크립트 중간에서 개별 턴을 잘라내지 마세요: 이는 이후의 모든 thinking 블록을 무효화하며 어떤 클라이언트 측 형태로도 이를 피할 수 없습니다. 하려던 지침 변경에는 대화 중간 시스템 메시지를 사용하거나, 선택적 제거에는 서버 측 컨텍스트 편집을 사용하세요. 압축 블록 다시 전달하기를 참조하세요.
마이그레이션 체크리스트
- 모델 이름을
claude-fable-5에서claude-fable-5-1로(또는claude-mythos-5에서claude-mythos-5-1로) 업데이트하세요. - 강제
tool_choice({type: "any"}또는{type: "tool", ...})를 교체하세요. 이는 400 오류를 반환합니다.{type: "auto"}와 명시적 지시 및strict: true도구를 함께 사용하거나, JSON 출력을 사용하세요. 지시는user턴에 넣거나, 애플리케이션에서 해당 호출이 필수인 경우 대화 중간role: "system"메시지에 넣으세요. - 빈 블록을 포함하여 매 턴마다
thinking블록을 변경 없이 계속 다시 전달하세요. Claude Fable 5.1은 Claude Opus 5, Claude Fable 5, Claude Mythos 5 및 이전 모델의 블록을 읽습니다. 대화를 Claude Fable 5.1에서 이전 모델로 옮기면 해당 블록이 삭제됩니다(Claude Mythos 5.1은 이를 읽습니다). - 코드에서
messages배열을 직접 구성하는 경우, 이전 턴을 편집하는지 확인하세요.thinking-binding-controls-2026-08-01베타 헤더와prefix_mismatch_behavior: "drop_block"으로 세션을 실행하고,input_transformations를 로깅하고, 모든prefix_binding_mismatch를 수정하세요. 모델 전환 후의model_binding_mismatch항목은 예상된 것입니다. - 대화 기록을 추가 전용(append-only)으로 유지하세요. 세션 시작 시
system과tools를 고정하고 세션 중간 변경 사항은role: "system"메시지와tool_addition/tool_removal블록으로 옮기고, 턴별 리마인더는 절대 제거하지 않는 턴 범위 시스템 메시지로 보내고, 컨텍스트는 서버 측에서 잘라내거나 클라이언트 측 요약을 거쳐 이어가는 모든 턴에서 thinking 블록을 제거하고, 턴 간 파일은file_id로 참조하세요. - 프로덕션용
prefix_mismatch_behavior(기본값"error"또는"drop_block")를 선택하고 모니터링하세요. 다른 사람들이 자신의 API 키로 실행하는 도구를 유지 관리하는 경우, 해당 필드를 설정한 상태로 테스트하세요. 귀하의 계정이 아니더라도 새 계정에는 기본적으로 적용됩니다. - 에이전트 루프에서 턴당 도구 호출 1회 동작이 있는지 검토하고 배칭 지시를 추가하세요.
- 인터페이스가 도구 호출 사이에 진행 상황 텍스트를 렌더링하는 경우,
thinking.display를"updates"(베타) 또는"summarized"로 설정하고 업데이트를 요청하도록 프롬프트하세요. - 요청 간에 effort를 변경하는 경우, 캐시 히트를 유지하기 위해 해당 변경을 메시지별 effort
role: "system"메시지(베타)로 옮기세요. stop_reason: "refusal"을 처리하고stop_details.category를 읽으세요.fallbacks: "default"(베타)를 고려하세요.high에서 시작하는 새로운 스윕으로effort를 재평가하고, 자체 워크로드에서 비용과 지연 시간의 기준선을 다시 설정하세요. 토큰 수는 대략 변하지 않습니다. 프롬프트 캐시 읽기 비용은 Claude Fable 5 요금의 4분의 1입니다.
Claude Opus 5에서 Claude Fable 5.1로 마이그레이션
Claude Fable 5.1은 Claude Opus 5와 동일한 Messages API 및 도구 사용 패턴을 사용합니다. 기본적으로 1M 토큰 컨텍스트 윈도우, 128k 최대 출력 토큰, 512 토큰 프롬프트 캐싱 최소값, 대화 중간 시스템 메시지 지원을 유지합니다. 프리필 제한, 샘플링 파라미터 제한, thinking.display의 "omitted" 기본값도 그대로 이어집니다. Claude Fable 5에서 Claude Fable 5.1로 마이그레이션의 모든 내용과 함께 다음을 적용하세요.
모델 이름 업데이트
model = "claude-opus-5" # Before
model = "claude-fable-5-1" # After
# 또는 동일한 기능을 갖춘 Project Glasswing 모델의 경우:
model = "claude-mythos-5-1" # After변경 사항
-
사고를 더 이상 비활성화할 수 없음: Claude Opus 5는 effort 수준이
high이하일 때thinking: {type: "disabled"}를 허용합니다.claude-fable-5-1과claude-mythos-5-1에서는 적응형 사고가 항상 켜져 있으며,thinking: {type: "disabled"}는 모든 effort 수준에서 400 오류를 반환합니다. 해당 필드를 제거하고, 더 낮은 effort 수준으로 토큰 사용량을 제어하고, 사고를 비활성화한 상태로 실행하던 워크로드의max_tokens를 재검토하세요. -
강제 도구 선택이 지원되지 않음: Claude Opus 5는
tool_choiceany와tool을 허용합니다.claude-fable-5-1은 400 오류를 반환합니다. 호환성이 깨지는 변경 사항을 참조하세요. -
모델 간 보존된 사고: Claude Fable 5.1은 Claude Opus 5의 thinking 블록을 읽습니다.
claude-opus-5에서claude-fable-5-1로 이동하는 대화는 추론을 유지합니다. Claude Opus 5는 Claude Fable 5.1의 블록을 읽을 수 없습니다. Claude Fable 5.1의 블록은 또한 이전 턴이 변경되면 더 이상 유효하지 않게 됩니다. 코드가 요청 사이에 이전 메시지를 편집하거나,system또는tools를 재구성하거나, 클라이언트에서 압축하는 경우, Claude Opus 5는 이의를 제기하지 않았지만claude-fable-5-1은 이후의 모든 thinking 블록을 거부하거나 삭제합니다. 트래픽을 전환하기 전에 해당 섹션의 3단계 점검을 실행하세요. 호환성이 깨지는 변경 사항을 참조하세요. -
도구 호출 사이의 텍스트가 thinking 블록으로 반환됨: Claude Opus 5에서는 모델이 도구 호출 사이에 작성하는 텍스트가
text블록으로 반환됩니다.claude-fable-5-1에서는 Claude Fable 5와 마찬가지로 해당 내레이션이 각 도구 호출 앞에 하나씩 진행 상황 업데이트thinking블록으로 반환됩니다. 기본thinking.display값인"omitted"에서는 읽을 수 있는 텍스트가 포함되지 않습니다. 인터페이스가 해당 내레이션을 렌더링하는 경우, 추론은 숨긴 채 진행 상황 업데이트를 텍스트로 받으려면display: "updates"(베타)를, 둘 다 받으려면"summarized"를 설정하세요. 그런 다음tool_use블록 사이의 비어 있지 않은thinking블록을 렌더링하세요. 도구 호출 사이의 진행 상황 업데이트를 참조하세요. -
안전 분류기 및 폴백 라우팅: Claude Fable 5.1은 Claude Fable 5와 동일한
stop_details카테고리를 다루는 안전 분류기를 실행하며, 이는 Claude Opus 5의 사이버 보안 전용 분류기보다 더 넓은 범위입니다."bio"및"reasoning_extraction"과 같이"cyber"이외의stop_details.category값을 예상하세요. 전체 목록은 거부 카테고리 표를 참조하세요.fallbacks구성 및 허용되는 대상에 대해서는 거부에fallbacks: "default"사용을 참조하세요. -
가격: 입력 토큰 백만 개당 $10 USD, 출력 토큰 백만 개당 $50 USD이며, Claude Opus 5는 $5 USD 및 $25 USD입니다. 프롬프트 캐시 읽기는 토큰 백만 개당 $0.25 USD로, Claude Opus 5 요금의 절반입니다. Claude 가격을 참조하세요.
-
데이터 보존: Claude Fable 5.1과 Claude Mythos 5.1은 30일 데이터 보존이 필요하며, Anthropic이 명시적으로 승인하지 않는 한 제로 데이터 보존(ZDR) 계약 하에서는 사용할 수 없고, Covered Models로 지정됩니다. Claude Opus 5는 ZDR 하에서 사용할 수 있습니다. 모델별 데이터 보존 요구 사항을 참조하세요.
마이그레이션 체크리스트
- 조직에 제로 데이터 보존(ZDR) 계약이 있는 경우, 먼저 자격을 확인하세요. 이 모델들은 Anthropic이 명시적으로 승인하지 않는 한 ZDR 하에서 사용할 수 없습니다. 모델별 데이터 보존 요구 사항을 참조하세요.
- 모델 이름을
claude-opus-5에서claude-fable-5-1(또는claude-mythos-5-1)로 업데이트하세요. - 모든
thinking: {type: "disabled"}구성을 제거하세요.claude-fable-5-1에서는 400 오류를 반환합니다. 더 낮은 effort 수준으로 토큰 사용량을 제어하고,max_tokens를 재검토하세요. - 강제
tool_choice(any또는tool)를auto와 명시적 지시(user턴 또는 대화 중간 시스템 메시지) 및strict: true도구로 교체하거나, JSON 출력으로 교체하세요. - 인터페이스가 도구 호출 사이에 텍스트를 렌더링하는 경우,
display: "updates"(베타) 또는"summarized"를 설정하고 비어 있지 않은thinking블록을 렌더링하세요. - Claude Fable 5 체크리스트의 보존된 사고, 기록 편집, 동작, effort, 폴백 항목을 적용하세요.
- 자체 워크로드에서 비용 기준선을 다시 설정하세요. 토큰 수는 대략 변하지 않습니다. 토큰당 가격은 다릅니다.
Claude Opus 4.8 또는 이전 버전에서 Claude Fable 5.1로 마이그레이션
먼저 Claude Opus 4.8로부터의 API 수준 변경 사항에 대해 Claude Opus 4.8에서 Claude Mythos 5 및 Claude Fable 5로 마이그레이션을 적용하세요. 여기에는 적응형 사고, 사고 출력, 거부, effort, 캐싱 최소값, 가격, 데이터 보존이 포함됩니다. 그런 다음 Claude Fable 5에서 Claude Fable 5.1로 마이그레이션의 나머지 차이점을 적용하세요. Claude Opus 4.7 또는 이전 버전의 경우, 해당하는 Claude Opus 5로 마이그레이션 섹션부터 시작하세요.
모델 이름 업데이트
model = "claude-opus-4-8" # Before
model = "claude-fable-5-1" # After
# 또는 동일한 기능을 갖춘 Project Glasswing 모델의 경우:
model = "claude-mythos-5-1" # After마이그레이션 체크리스트
- 조직에 제로 데이터 보존(ZDR) 계약이 있는 경우, 먼저 자격을 확인하세요. 이 모델들은 Anthropic이 명시적으로 승인하지 않는 한 ZDR 하에서 사용할 수 없습니다. Claude Opus 4.8은 ZDR 하에서 사용할 수 있습니다.
- 모델 이름을
claude-opus-4-8에서claude-fable-5-1(또는claude-mythos-5-1)로 업데이트하세요. - 모든
thinking: {type: "disabled"}구성을 제거하고max_tokens를 재검토하세요.thinking필드가 없는 요청은 적응형 사고로 실행됩니다. - 강제
tool_choice(any또는tool)를auto와 명시적 지시(user턴 또는 대화 중간 시스템 메시지) 및strict: true도구로 교체하거나, JSON 출력으로 교체하세요. thinking블록을 변경 없이 다시 전달하고 해당 텍스트는 표시 전용으로 취급하세요. Claude Fable 5.1은 Claude Opus 4.8의 thinking 블록을 읽습니다.claude-fable-5-1로 이동하는 대화는 이전 추론을 유지합니다. Claude Opus 4.8은 Claude Fable 5.1의 블록을 읽을 수 없습니다.- 코드에서
messages배열을 직접 구성하는 경우, 이전 턴을 편집하는지 확인하세요. Claude Opus 4.8 및 이전 버전용으로 작성된 통합은 종종 오래된 턴을 잘라내거나, 이전 메시지를 제거 또는 재구성하거나, 매 요청마다system프롬프트를 새로 고치며, Claude Opus 4.8은 이에 이의를 제기하지 않았습니다.claude-fable-5-1에서는 이러한 각 작업이 이후의 thinking 블록을 무효화합니다. stop_reason: "refusal"을 처리하고,stop_details.category를 읽고,fallbacks: "default"(베타)를 고려하세요.- Claude Fable 5 체크리스트의 보존된 사고, 기록 편집, 동작, 메시지별 effort, 진행 상황 업데이트 항목을 적용하세요.
effort를 재평가하고(high에서 시작), 512 토큰 캐싱 최소값 근처의 프롬프트를 검토하고, 비용과 지연 시간의 기준선을 다시 설정하세요. 토큰당 가격은 다릅니다.
Claude Mythos 5에서 Claude Mythos 5.1로 마이그레이션
Claude Mythos 5.1은 Claude Fable 5.1에 대응하는 접근 제한 모델입니다. 모델 ID를 전환하기 전에 Anthropic 계정 팀과 함께 조직의 접근 권한을 확인하세요.
API 수준의 차이점은 Claude Fable 5에서 Claude Fable 5.1로 마이그레이션과 일치합니다. 강제 도구 선택은 400 오류를 반환하며, thinking 블록은 이를 생성한 모델 또는 더 새로운 모델에 대해서만 보존됩니다(Claude Mythos 5.1은 Claude Mythos 5의 블록을 읽지만, 그 반대는 아닙니다). Claude Fable 5.1과 달리 Claude Mythos 5.1은 대화 점검을 실행하지 않으므로, 이전 턴을 편집해도 thinking 블록이 무효화되지 않지만, 여전히 프롬프트 캐시는 다시 시작됩니다.
모델 이름 업데이트
model = "claude-mythos-5" # Before
model = "claude-mythos-5-1" # After마이그레이션 체크리스트
- 모델 이름을
claude-mythos-5에서claude-mythos-5-1로 업데이트하세요. - 강제
tool_choice(any또는tool)를auto와 명시적 지시(user턴 또는 대화 중간 시스템 메시지) 및strict: true도구로 교체하거나, JSON 출력으로 교체하세요. stop_reason: "refusal"을 처리하고 응답 콘텐츠보다 먼저stop_details.category를 읽으세요. 거부 및 폴백을 참조하세요.- 빈 블록을 포함하여 매 턴마다
thinking블록을 변경 없이 계속 다시 전달하세요. - 코드에서
messages배열을 직접 구성하는 경우, 프롬프트 캐시를 웜 상태로 유지하기 위해 대화 기록을 추가 전용으로 유지하세요. Claude Mythos 5.1은 대화 점검을 실행하지 않으므로, 편집해도 thinking 블록이 무효화되지 않습니다. - Claude Fable 5 섹션의 동작 및 권장 변경 사항을 적용하되, Claude Mythos 5.1에는 적용되지 않는 기록 편집 항목은 제외하세요.
- 새로운 스윕으로
effort를 재평가하고 비용과 지연 시간의 기준선을 다시 설정하세요. 프롬프트 캐시 읽기 비용은 Claude Mythos 5 요금의 4분의 1입니다.
Was this page helpful?