Claude Fable 5.1로의 전환은 대부분 모델 ID 교체입니다. API 표면, 제한, 토큰당 가격 책정, 토크나이저, 상시 적응형 사고, 거부 처리 기능은 모두 Fable 5와 일치합니다. 하지만 세 가지 변경 사항으로 인해 Fable 5에서는 발생하지 않던 오류가 발생하며, 그중 하나인 기록 편집 확인은 1년 동안 잘 작동하던 에이전트 하네스를 소리 없이 저하시킬 수 있습니다. Opus 5에서 전환하는 경우 네 가지 항목이 추가됩니다.
이 가이드는 Anthropic의 마이그레이션 가이드 및 Claude Fable 5.1의 새로운 기능을 기반으로 각 항목에 대한 정확한 오류 텍스트와 해결책을 발생 순서대로 정리한 체크리스트입니다. 모든 코드 조각은 프로덕션 환경에 도달하기 전에 Apidog에 붙여넣어 실제 엔드포인트에 대해 실행할 수 있습니다. 모델 개요는 Claude Fable 5.1이란 무엇인가에서 시작하세요.

0단계: 마이그레이션 필요성 확인
Anthropic 문서에서는 Opus 5로 시작하고, "높은 노력을 들인 Claude Opus 5 평가에서도 여전히 미흡하거나, 까다로운 추론 및 장기 에이전트 작업을 위해" Fable 5.1을 사용하도록 안내합니다. Opus 5가 평가를 통과하면 마이그레이션은 측정 가능한 이득 없이 토큰당 가격을 두 배로 만듭니다. Fable 5를 사용 중이라면, 더 저렴한 캐시 읽기 비용과 더 나은 주장된 성능 수치를 제공하므로 가격은 동일하며, 문제는 얼마나 많은 하네스 작업이 필요한지에 달려 있습니다. Fable 5.1 대 Fable 5 및 Fable 5.1 대 Opus 5 비교 자료가 결정에 도움이 될 것입니다.
세 가지 적격성 확인 사항:
- 데이터 보존. Fable 5.1은 30일 보존이 필요하며, Anthropic이 명시적으로 승인하지 않는 한 무데이터 보존(ZDR) 환경에서는 사용할 수 없습니다. ZDR 조직은 다른 힌트 없이 모든 요청에 대해
400 invalid_request_error를 받게 됩니다. Opus 5는 ZDR에서 사용할 수 있습니다. - 우선순위 계층. Fable 5.1에서는 지원되지 않습니다. Fable 5는 지원합니다.
- 요청 제한. Fable 5.1은 Fable 5와 함께 하나의 "Fable 5.x" 풀을 공유하므로, 점진적인 전환은 동일한 여유 용량을 사용합니다.
1단계: 모델 이름 업데이트
model = "claude-fable-5" # Before
model = "claude-opus-5" # Or before
model = "claude-fable-5-1" # After
Amazon Bedrock에서는 ID가 anthropic.claude-fable-5-1입니다. Google Cloud, Microsoft Foundry, AWS의 Claude Platform은 claude-fable-5-1을 사용합니다. Claude Managed Agents를 사용하는 경우, 이것이 유일하게 필요한 변경 사항입니다.
주요 변경 사항 1: 강제 도구 사용 시 400 오류 반환
Fable 5는 tool_choice 값으로 auto, none, any, tool을 허용했습니다. Fable 5.1은 Messages API, Batches API 및 토큰 계산 엔드포인트에서 마지막 두 값을 거부합니다.
tool_choice: type "tool" and "any" are not supported for this model.
Anthropic의 이유: 사고(thinking) 기능은 항상 활성화되어 있으며, 강제 호출은 이를 건너뛰게 되므로 모델이 작업 과정을 도구 인수에 기록하게 됩니다.
이전 (Fable 5):
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."}],
)
이후 (Fable 5.1): tool_choice를 auto로 두고, 명령어에 도구 이름을 명시하며, 인수가 여전히 스키마와 일치하도록 strict: true(엄격한 도구 사용)로 설정합니다.
record_summary_tool["strict"] = True
record_summary_tool["input_schema"]["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."}],
)
의도에 따라 마이그레이션하십시오. JSON을 받기 위해 도구를 강제했다면, 구조화된 출력(output_config.format)으로 대체하십시오. 애플리케이션이 이 턴에 호출을 요구하는 경우, 최신 사용자 턴 뒤에 도구 이름을 명시하고 호출이 필수적이라고 알리는 role: "system" 메시지를 추가하고, 이를 기록에 유지하십시오. "정확히 하나의 도구"를 위해 any에 의존했다면, disable_parallel_tool_use: true는 여전히 auto와 함께 작동하지만 이제는 최대 하나의 호출을 의미합니다. 도구 누락 시 재시도 루프를 삭제하십시오. Anthropic은 Fable 5.1이 명시적인 도구 지침을 신뢰할 수 있게 따른다고 말합니다. CMEK 조직에서는 strict: true 및 구조화된 출력이 Fable 모델에서 사용할 수 없으므로, 명령어에만 의존하십시오.
주요 변경 사항 2: 이전 모델은 Fable 5.1 사고 블록을 읽을 수 없음
모든 사고 블록은 이를 생성한 모델을 기록합니다. Fable 5.1은 Opus 5, Fable 5, Mythos 5 및 이전 모델의 블록을 읽을 수 있으므로, Fable 5.1로 전환된 대화는 추론을 유지합니다. Mythos 5.1을 제외하고는 어떤 다른 모델도 Fable 5.1 블록을 읽을 수 없습니다.
Fable 5.1 대화가 라우터 전환, 클라이언트 측 재시도 또는 분류기 거부 대체(fallback)를 통해 이전 모델에 도달할 수 있습니다. 모든 경우에 API는 해당 모델이 읽을 수 없는 블록을 보기 전에 삭제합니다. 요청은 성공하고, 삭제된 토큰은 요금이 청구되지 않으며, 대상 모델은 추론 없이 다시 계획을 수립하는데, 이는 전환 후 첫 번째 턴에서 비용과 지연 시간을 증가시킵니다.
코드에서 수정할 사항은 없습니다. 사고 블록을 변경하지 않고 그대로 전달하십시오. 직접 제거하면 400 서명 오류가 발생할 수 있습니다. 가시성을 위해 thinking-binding-controls-2026-08-01 베타 헤더를 전송하면 응답에 각 삭제된 블록의 reason: "model_binding_mismatch"를 명시하는 input_transformations 배열이 포함됩니다.
주요 변경 사항 3: 이전 턴 편집 시 사고 블록 무효화
이것은 시간을 할애해야 할 항목입니다. Fable 5.1 사고 블록은 정확히 그 앞에 오는 system 프롬프트, tools 배열, 메시지 기록에 대해서만 유효합니다(보존된 사고). 이 확인이 강제되는 경우, 변경된 후 블록을 다시 재생하는 요청은 거부됩니다.
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.
강제 적용 대상. 2026년 8월 31일 이후에 생성된 계정. 이전 계정은 불일치를 기록하지만, 요청에서 thinking.block_binding.prefix_mismatch_behavior를 설정한 경우에만 작동합니다. Anthropic은 향후 모델이 모든 계정에 대해 이를 강제 적용할 것이라고 말합니다. 다른 사람들이 자신의 API 키로 실행하는 도구를 출시하는 경우, 필드를 설정하여 테스트하십시오. 새 계정의 사용자는 귀하보다 먼저 강제 적용됩니다. Claude Code, claude.ai, Managed Agents 및 Agent SDK는 접두사를 그대로 유지합니다. Mythos 5.1은 이 확인을 전혀 실행하지 않습니다.
나중에 오는 모든 블록을 무효화하는 것: 이전 턴을 편집, 재정렬 또는 제거하는 것(이전 도구 결과 삭제 포함). 다음 요청에서 제거할 요청별 텍스트 삽입. 요청 사이에 system 또는 tools 재구축. 나중에 다른 바이트를 제공하는 이미지 URL. 블록을 유효하게 유지하는 것: 추가 전용 기록, 가장 오래된 사고 블록부터 선두 부분 제거, system, tools, messages 외부의 모든 매개변수 변경, cache_control 마커 이동, 서버 측 압축 또는 컨텍스트 편집.
회피책. 베타 헤더를 전송하고 필드를 "drop_block"으로 설정합니다.
response = client.beta.messages.create(
model="claude-fable-5-1",
max_tokens=16000,
thinking={"type": "adaptive", "block_binding": {"prefix_mismatch_behavior": "drop_block"}},
betas=["thinking-binding-controls-2026-08-01"],
messages=history,
)
for t in response.input_transformations or []:
print(t.path, t.reason) # prefix_binding_mismatch or model_binding_mismatch
API는 첫 번째 불일치 블록과 그 이후의 모든 사고 블록을 삭제하고, 진행하며, 각 삭제를 보고합니다. 이는 해당 요청에만 적용되므로 필드를 계속 전송하십시오. CI에서 "error"를 명시적으로 설정하여 기록 편집 시 실행이 실패하도록 하십시오. 보존된 사고 가이드는 3단계 감사와 실패하는 압축 형태를 설명합니다. 수정 테이블:
| 이전 작업 | 대신 이렇게 하세요 |
|---|---|
세션 중간에 system 편집 |
세션 시작 시 고정; 변경 사항이 적용되는 role: "system" 메시지 추가 |
세션 중간에 tools 편집 |
전체 세트를 미리 선언; 시스템 메시지에 tool_addition / tool_removal 블록 전송 (베타 mid-conversation-tool-changes-2026-07-01) |
| 턴별 알림 삽입 후 삭제 | clear_at: "next_user_message"를 포함한 턴 범위 시스템 메시지 (베타 mid-conversation-system-clear-at-2026-08-21), 기록에 유지 |
| 클라이언트 측에서 이전 도구 결과 삭제 | 서버 측 컨텍스트 편집 |
| 최근 턴을 그대로 유지하는 클라이언트 측 압축 | 서버 측 압축, 또는 하나의 요약 메시지와 새로운 사용자 턴만 재생하고 다른 것은 재생하지 않음 |
| 여러 턴에 걸쳐 URL로 이미지 참조 | Files API에 한 번 업로드하고 file_id 전송 |
Opus 5에서 전환 시: 네 가지 추가 항목
1. 어떤 노력 수준에서도 사고(Thinking)를 비활성화할 수 없습니다. Opus 5는 high 이하의 노력 수준에서 thinking: {"type": "disabled"}를 허용했습니다. Fable 5.1은 어떤 노력 수준에서도 400 오류를 반환합니다. 해당 필드를 제거하고, 더 낮은 노력 수준으로 비용을 제어하며, 사고 없이 실행되던 경로의 max_tokens를 재검토하십시오.
2. 도구 간 설명(narration)이 사고 블록으로 이동합니다. Opus 5에서는 도구 호출 사이의 텍스트가 text 블록으로 반환되었습니다. Fable 5.1에서는 기본 display: "omitted" 상태에서 비어 있는 진행 상황 업데이트 thinking 블록으로 반환됩니다. UI에서 해당 설명을 렌더링했다면, thinking-display-updates-2026-08-18 헤더와 함께 thinking: {"type": "adaptive", "display": "updates"}를 설정하십시오.
3. 분류기 세트가 더 넓어졌습니다. Opus 5는 사이버 전용 분류기를 실행합니다. Fable 5.1은 cyber, bio, frontier_llm, reasoning_extraction, general_harms를 포함합니다. content를 읽기 전에 stop_reason: "refusal"을 처리하고, server-side-fallback-2026-07-01 헤더와 함께 fallbacks: "default"를 선택하십시오. 허용되는 대상은 Opus 4.8 및 Opus 5이므로, 거부된 요청은 마이그레이션 이전 모델로 폴백(fallback)될 수 있습니다.
4. 가격 및 보존. 캐시 읽기 비용은 $0.50에서 $0.25로 변경되었으며, $5와 $25 대신 $10와 $50입니다. ZDR은 지원되지 않습니다. 가격 분석에서 세부 사항을 확인하십시오.
Opus 4.8 또는 이전 버전에서 전환하는 경우, 먼저 Opus 4.8에서 Opus 5로의 마이그레이션을 적용한 다음 이 가이드를 따르십시오. Opus 4.8용으로 작성된 통합은 종종 이전 턴을 잘라내거나 각 요청마다 시스템 프롬프트를 재구축했지만, Opus 4.8은 이에 대해 이의를 제기하지 않았습니다.
테스트할 동작 변경 사항
오류를 반환하는 것은 없으며, 각 변경 사항에는 프롬프트 가이드에 한 줄 수정이 있습니다. 긴 루프에서 Fable 5.1은 Fable 5가 여러 도구 호출을 일괄 처리하던 것과 달리 턴당 하나의 도구 호출을 발행할 수 있습니다. 다중 호출 턴의 비율을 측정하고, 비율이 떨어졌다면 배치 유도(batching nudge)를 추가하십시오. 진행 메시지를 덜 작성하므로 display: "updates"로 설정하고, 발견 사항을 보류하도록 지시하는 프롬프트 줄을 제거하십시오. low 노력 수준에서는 검색 도구를 덜 자주 호출하므로, 신선한 데이터가 필요한 턴의 노력 수준을 높이십시오.
권장 변경 사항
- 메시지별 노력 (베타
mid-conversation-output-config-2026-07-01). 캐시를 재설정하는 최상위 값을 변경하는 대신,output_config를 포함하는 빈 내용의role: "system"메시지로 노력 수준을 변경하십시오. high에서 시작하여 전체를 테스트하십시오. Fable 5 대비 이점은xhigh및max에서 가장 큽니다. Anthropic은medium이 더 낮은 비용으로 Fable 5와 거의 일치한다고 말합니다. 레벨 이름은 모델 간에 일치하지 않습니다.- 서버에서 컨텍스트를 잘라내십시오. 서버 측 압축(베타
compact-2026-01-12) 및 컨텍스트 편집은 기록 편집으로 간주되지 않습니다.
마이그레이션 체크리스트
- [ ] 30일 데이터 보존 확인 및 우선순위 계층에 대한 의존성 없음 확인.
- [ ] 모델 이름을
claude-fable-5-1로 업데이트. - [ ] 유형이
any또는tool인 모든tool_choice를auto와 명령어 및strict: true, 또는 구조화된 출력으로 대체. - [ ] Opus 5에서:
thinking: {"type": "disabled"}를 제거하고max_tokens재검토. - [ ] 빈 사고 블록을 포함하여 모든 턴에서 사고 블록을 변경하지 않고 다시 전달.
- [ ] 코드가
messages를 구축하는 경우,prefix_mismatch_behavior: "drop_block"으로 세션을 실행하고,input_transformations를 기록하며, 모든prefix_binding_mismatch를 수정. - [ ] 세션 시작 시
system및tools고정; 턴별 알림을 삭제하지 않는 턴 범위 시스템 메시지로 이동. - [ ] 프로덕션
prefix_mismatch_behavior를 선택하고 모니터링. - [ ]
stop_reason: "refusal"처리;fallbacks: "default"추가. - [ ] UI가 도구 간 텍스트를 렌더링하는 경우,
display: "updates"로 설정. - [ ]
high부터 노력 수준 테스트를 다시 실행하고 비용 기준을 재설정. 토큰 수는 Fable 5와 동일하며, 캐시 읽기 비용은 4분의 1로 줄어듭니다.
Apidog에서 체크리스트 실행
주요 변경 사항당 하나의 요청으로 컬렉션을 구축하십시오. 즉, 강제 tool_choice 호출(위의 400 오류 예상), thinking: disabled 호출(400 오류 예상), 사고 바인딩 헤더가 설정된 상태에서 턴 사이에 시스템 프롬프트를 편집하는 두 번의 요청 시퀀스(prefix_binding_mismatch 항목 예상). 옆에 stop_reason에 대한 어설션과 빈 input_transformations 배열이 있는 통과 버전을 추가하고, 모든 하네스 변경 시 Apidog CLI를 통해 CI에서 실행하십시오. 이를 구축하려면 Apidog 다운로드; API 워크스루에 요청 본문이 있습니다.

자주 묻는 질문
Fable 5에서 Fable 5.1로 마이그레이션하는 것이 드롭인(drop-in) 변경입니까? 대부분 그렇습니다. 강제 tool_choice는 400 오류를 반환하고, 이전 모델은 Fable 5.1 사고 블록을 읽을 수 없으며, 이전 턴을 편집하면 강제 적용 계정에서 이후 사고 블록이 무효화됩니다. 다른 모든 것은 그대로 유지됩니다.
"다른 대화에 바인딩됨"은 무엇을 의미합니까? 코드가 Fable 5.1 사고 블록 이전에 무언가를 변경한 다음 해당 블록을 다시 재생했습니다. 기록 편집을 중단하거나, prefix_mismatch_behavior: "drop_block"과 함께 thinking-binding-controls-2026-08-01 헤더를 전송하십시오.
내 계정에 기록 편집 확인이 강제 적용됩니까? 2026년 8월 31일 또는 그 이후에 생성된 경우 그렇습니다. 이전 계정은 prefix_mismatch_behavior를 설정할 때만 강제 적용됩니다.
Fable 5 프롬프트를 계속 사용할 수 있습니까? 네. Anthropic은 변경 없이도 잘 작동해야 한다고 말합니다. 노력 수준 테스트를 다시 실행하고, 긴 루프에서 병렬 도구 호출이 줄어들 것으로 예상하십시오.
Opus 5에서 마이그레이션할 때 무엇이 문제가 됩니까? Fable 5 목록에 있는 모든 것과 더불어, 어떤 노력 수준에서도 thinking: disabled가 400 오류를 반환하고, 도구 간 설명이 사고 블록으로 이동하며, 분류기 세트가 더 넓어지고, 가격이 두 배가 되며, ZDR이 지원되지 않습니다.
Bedrock과 Google Cloud도 동일한 주요 변경 사항을 가집니까? 모델 변경 사항은 그렇습니다. 사고 바인딩 제어 기능은 출시 시 Claude API 및 AWS의 Claude Platform에 있었고, Bedrock과 Google Cloud에서는 모델별로 적용될 예정입니다. 제어 기능이 없다면, 사고 블록을 제거하고 한 번 재시도하는 것이 복구 방법입니다.
