기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
보존된 사고
개요
Claude Fable 5.1에서는 각 사고 블록이 이를 생성한 대화와 연결됩니다. API는 시스템 프롬프트, 도구 목록 및 블록 이전의 모든 메시지가 이후 요청에서 해당 블록을 재생할 때 변경되지 않는지 확인합니다. 이렇게 하면의 추론 무결성Claude이 보호됩니다. 한 지침 세트에서 생성된 추론은 다른 세트에서 재생할 수 없습니다.
하네스가 대화 기록을 수신한 그대로 다시 보내면 아무것도 변경되지 않습니다. 턴당 미리 알림 주입, 이전 턴 요약 또는 시스템 프롬프트 재구축 등 요청 간 기록을 편집하는 경우 API는 기본적으로 요청을 거부합니다.
재생 시 확인되는 항목
| 확인 | 설명 |
|---|---|
| 모델 | 블록을 읽는 모델은 생산자의 생각을 읽을 수 있습니다. 모델은 명시적으로 호환되지 않는 한 다른 모델의 생각을 읽을 수 없습니다. 이 검사는 모든 사고 가능 모델에 적용됩니다. |
| 대화 접두사 | 블록 이전의 최상위 시스템 프롬프트, 도구 및 모든 메시지 콘텐츠는 이를 생성한 요청과 변경되지 않습니다. Claude Fable 5.1은이 검사를 실행합니다. Claude Mythos 5.1은 동일한 서명을 기록하지만 실행하지는 않습니다. |
참고
서명이 변경되었거나 해독할 수 없는 사고 블록은 이러한 검사 또는 베타 값에 관계없이 항상 400을 반환합니다.
block_binding 요청 객체(베타)
를 thinking 객체block_binding에 추가하고에 베타 값을 포함하여 접두사 불일치가 감지될 때 발생하는 상황을 anthropic_beta 제어합니다.
{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["thinking-binding-controls-2026-08-01"], "max_tokens": 16000, "thinking": { "type": "adaptive", "block_binding": { "mismatch_behavior": "drop_block" } }, "messages": [{ "role": "user", "content": "Your prompt here" }] }
block_binding는 대화 접두사 검사에 실패한 사고 블록으로 API가 수행하는 작업을 mismatch_behavior제어하는 필드 1개를 허용합니다. 베타 값 없이 전송된는 400을 block_binding 반환합니다. 형식이 잘못된 값은 필드 이름 지정 400도 반환합니다.
불일치 동작 제어
| 값 | 실패한 검사에 대한 동작 |
|---|---|
"error"(기본값) |
실패한 블록400 invalid_request_error의 이름을 지정하면 요청이 실패합니다. 다시 시도할 수 없습니다. 스트리밍 이벤트 전에 반환됩니다. |
"drop_block" |
요청이 200으로 성공합니다. 실패한 블록은 나중에 대화에서 생각할 때마다 모델 앞에 제거되고 제거된 각 블록은에 나열됩니다input_transformations. |
두 값 모두 모델 검사를 변경하지 않으며 항상 삭제됩니다.
input_transformations 응답 배열
베타 값이 전송되면 응답에는 제거된 블록을 설명하는 최상위 input_transformations 배열이 포함될 수 있습니다.
{ "type": "message", "role": "assistant", "content": [ ... ], "stop_reason": "end_turn", "usage": {"input_tokens": 18234, "output_tokens": 911}, "input_transformations": [ {"type": "thinking_dropped", "path": "messages.3.content.0", "reason": "prefix_binding_mismatch"} ] }
이 배열은 최상위 배열(의 형제usage)이며, 제거된 블록이 없고 그렇지 않은 [] 경우 베타 값으로만 표시됩니다. 각 항목에는 제거된 블록을 path 식별하는와 model_binding_mismatch 또는 중 reason 하나인가 포함되어 있습니다prefix_binding_mismatch. 스트리밍 응답에서 배열은 message_start 이벤트 내 메시지 객체 내에 나타납니다. 제거된 블록은에 포함되지 않습니다input_tokens.
오류 응답
이 mismatch_behavior인 경우 접두사 불일치"error"는 다음을 반환합니다.
{ "type": "error", "error": { "type": "invalid_request_error", "message": "messages.3.content.0: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.mismatch_behavior` to \"drop_block\"." } }
이 오류는 해당 요청에 대해 영구적입니다. 자동 재시도 루프는 이를 지우지 않습니다. 이를 포착하면 기록에서 모든 사고 블록을 제거하고 재시도하거나 mismatch_behavior: "drop_block" 및 베타 헤더를 사용하여 재시도합니다.
멀티턴 및 에이전트 애플리케이션을 위한 지침
재생 도우미는 반환된 대로 정확하게 회전하며 대화 내에서 시스템 프롬프트와 도구를 안정적으로 유지합니다.
이전 턴에 삽입된 일회성 콘텐츠(예: 마지막 사용자 턴에 추가된 임시 시스템 메시지 또는 미리 알림 텍스트)를 피합니다. 이렇게 하면 대화 접두사가 변경되고 나중에 생각 블록이 무효화됩니다. 대신 중간 대화 시스템 메시지를 사용합니다.
애플리케이션이 대화 기록을 다시 작성하는 경우 다시 작성된 지점부터 사고 블록을 삭제하거나를
mismatch_behavior로 설정합니다"drop_block".Converse API를 지원하는 모델과 함께 사용하는 경우 베타 값과를
thinking.block_binding전달합니다additionalModelRequestFields.