

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 思考加密
<a name="claude-messages-thinking-encryption"></a>

完整思考內容會經過加密，並在簽章欄位中傳回。此欄位用於驗證當傳回給 API 時，Claude 產生的思考區塊。串流回應時，會透過正好在 `content_block_stop` 事件前的 `content_block_delta` 事件內的 `signature_delta` 來新增簽章。

**注意**  
只有在使用具有延伸思考的工具時，才嚴格要求傳送回思考區塊。否則，您可以省略先前回合的思考區塊，或在將資料傳回時讓 API 為您去掉這些區塊。  
如果回傳思考區塊，我們建議完整回傳您收到的所有內容，以確保一致性並避免潛在問題。

## Claude 3.7 Sonnet 中的思考修訂
<a name="claude-messages-thinking-encryption-redaction"></a>

**注意**  
以下資訊特別適用於 Claude 3.7 Sonnet。Claude 4 模型以不同的方式處理思考，且不會產生修訂後的思考區塊。

在 Claude 3.7 Sonnet 中，適用下列條件：
+ 安全系統偶爾會標記 Claude 的內部推理。發生這種情況時，我們會加密部分或全部的思考區塊，並將其作為 redacted\_thinking 區塊傳回給您。將 redacted\_thinking 區塊傳回至 API 時，會解密這些區塊，讓 Claude 能夠繼續回應而不會遺失內容。
+ 會在回應中的文字區塊之前傳回 `thinking` 和 `redacted_thinking` 區塊。

建置使用延伸思考搭配 Claude 3.7 Sonnet 的客戶面向應用程式時，請考量下列事項：
+ 請注意，修訂後的思考區塊包含人類無法閱讀的加密內容。
+ 考慮提供簡單的說明，例如：「基於安全考量，部分 Claude 的內部推理已自動加密。這不會影響回應的品質。」
+ 如果您向使用者顯示思考區塊，則可以篩選掉已修訂的區塊，同時保留正常的思考區塊。
+ 請注意，使用延伸思考功能有時可能會導致某些推理遭到加密。
+ 實作適當的錯誤處理，以正常管理修訂後的思考，而不中斷 UI。

以下範例顯示正常和修訂後的思考區塊：

```
{
    "content": [
        {
            "type": "thinking",
            "thinking": "Let me analyze this step by step...",
            "signature":"WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."                },
        {
            "type": "redacted_thinking",
            "data":"EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpP..."
        },
        {
            "type": "text",
            "text": "Based on my analysis..."
        }
    ]
}
```

**提示**  
在輸出中查看修訂後的思考區塊是預期的行為。模型仍然可以使用此修訂後的推理來通知其回應，同時維護安全防護機制。  
如果需要在應用程式中測試修訂後的思考處理，您可以使用此特殊測試字串作為提示：`ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB`

在多回合對話中將 `thinking` 和 `redacted_thinking` 區塊傳回 API 時，您必須將完整的未修改區塊傳回 API 以進行最後的助理回合。這對維護模型的推理流程至關重要。我們建議一律將所有思考區塊傳回給 API。如需詳細資訊，請參閱「[工具使用的延伸思考保留思考區塊](claude-messages-extended-thinking.md#claude-messages-extended-thinking-tool-use-thinking-blocks)」。

下列範例使用 **InvokeModelWithResponseStream** API，在搭配修訂使用思考字符時示範請求和回應結構。

啟用串流時，您將收到來自 thinking\_delta 事件的思考內容。以下是如何使用思考處理串流：

**請求**

```
{
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 24000,
    "thinking": {
        "type": "enabled",
        "budget_tokens": 16000
    },
    "messages": [
        {
            "role": "user",
            "content": "What is 27 * 453?"
        }
    ]
}
```

**回應**

```
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-3-7-sonnet-20250219", "stop_reason": null, "stop_sequence": null}}

event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "Let me solve this step by step:\n\n1. First break down 27 * 453"}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n2. 453 = 400 + 50 + 3"}}

// Additional thinking deltas...

event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}

event: content_block_stop
data: {"type": "content_block_stop", "index": 0}

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}

event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "27 * 453 = 12,231"}}

// Additional text deltas...

event: content_block_stop
data: {"type": "content_block_stop", "index": 1}

event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}

event: message_stop
data: {"type": "message_stop"}
```