View a markdown version of this page

보존된 사고 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

보존된 사고

개요

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.