

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

# 보존된 사고
<a name="claude-messages-thinking-block-binding"></a>

## 개요
<a name="claude-messages-thinking-block-binding-overview"></a>

Claude Fable 5.1에서는 각 사고 블록이 이를 생성한 대화와 연결됩니다. API는 시스템 프롬프트, 도구 목록 및 블록 이전의 모든 메시지가 이후 요청에서 해당 블록을 재생할 때 변경되지 않는지 확인합니다. 이렇게 하면의 추론 무결성Claude이 보호됩니다. 한 지침 세트에서 생성된 추론은 다른 세트에서 재생할 수 없습니다.

하네스가 대화 기록을 수신한 그대로 다시 보내면 아무것도 변경되지 않습니다. 턴당 미리 알림 주입, 이전 턴 요약 또는 시스템 프롬프트 재구축 등 요청 간 기록을 편집하는 경우 API는 기본적으로 요청을 거부합니다.

**재생 시 확인되는 항목**


| **확인** | **설명** | 
| --- | --- | 
| 모델 | 블록을 읽는 모델은 생산자의 생각을 읽을 수 있습니다. 모델은 명시적으로 호환되지 않는 한 다른 모델의 생각을 읽을 수 없습니다. 이 검사는 모든 사고 가능 모델에 적용됩니다. | 
| 대화 접두사 | 블록 이전의 최상위 시스템 프롬프트, 도구 및 모든 메시지 콘텐츠는 이를 생성한 요청과 변경되지 않습니다. Claude Fable 5.1은이 검사를 실행합니다. Claude Mythos 5.1은 동일한 서명을 기록하지만 실행하지는 않습니다. | 

**참고**  
서명이 변경되었거나 해독할 수 없는 사고 블록은 이러한 검사 또는 베타 값에 관계없이 항상 400을 반환합니다.

## block\_binding 요청 객체(베타)
<a name="claude-messages-thinking-block-binding-request-object"></a>

를 `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도 반환합니다.

## 불일치 동작 제어
<a name="claude-messages-thinking-block-binding-mismatch-behavior"></a>


| **값** | **실패한 검사에 대한 동작** | 
| --- | --- | 
| "error"(기본값) | 실패한 블록400 invalid\_request\_error의 이름을 지정하면 요청이 실패합니다. 다시 시도할 수 없습니다. 스트리밍 이벤트 전에 반환됩니다. | 
| "drop\_block" | 요청이 200으로 성공합니다. 실패한 블록은 나중에 대화에서 생각할 때마다 모델 앞에 제거되고 제거된 각 블록은에 나열됩니다input\_transformations. | 

두 값 모두 모델 검사를 변경하지 않으며 항상 삭제됩니다.

## input\_transformations 응답 배열
<a name="claude-messages-thinking-block-binding-input-transformations"></a>

베타 값이 전송되면 응답에는 제거된 블록을 설명하는 최상위 `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`.

## 오류 응답
<a name="claude-messages-thinking-block-binding-error-responses"></a>

이 `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"` 및 베타 헤더를 사용하여 재시도합니다.

## 멀티턴 및 에이전트 애플리케이션을 위한 지침
<a name="claude-messages-thinking-block-binding-guidance"></a>
+ 재생 도우미는 반환된 대로 정확하게 회전하며 대화 내에서 시스템 프롬프트와 도구를 안정적으로 유지합니다.
+ 이전 턴에 삽입된 일회성 콘텐츠(예: 마지막 사용자 턴에 추가된 임시 시스템 메시지 또는 미리 알림 텍스트)를 피합니다. 이렇게 하면 대화 접두사가 변경되고 나중에 생각 블록이 무효화됩니다. 대신 중간 대화 시스템 메시지를 사용합니다.
+ 애플리케이션이 대화 기록을 다시 작성하는 경우 다시 작성된 지점부터 사고 블록을 삭제하거나를 `mismatch_behavior`로 설정합니다`"drop_block"`.
+ Converse API를 지원하는 모델과 함께 사용하는 경우 베타 값과를 `thinking.block_binding` 전달합니다`additionalModelRequestFields`.