Criptografia de raciocínio - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Criptografia de raciocínio

O conteúdo de raciocínio completo é criptografado e exibido no campo de assinatura. Esse campo é usado para verificar se os blocos de raciocínio foram gerados pelo Claude quando transmitidos de volta à API. Ao transmitir respostas, a assinatura é adicionada por meio de content_block_delta dentro de um evento signature_delta um pouco antes do evento content_block_stop.

nota

É estritamente necessário devolver blocos de raciocínio ao usar ferramentas com raciocínio estendido. Caso contrário, você pode omitir os blocos de raciocínio dos turnos anteriores ou deixar que a API os remova para você se você os devolver.

Ao devolver blocos de raciocínio, recomendamos devolver tudo conforme você os recebeu, para fins de consistência e para evitar possíveis problemas.

Edição de raciocínio no Claude 3.7 Sonnet

nota

As informações a seguir se aplicam especificamente aos modelos Claude 3.7 Sonnet e Claude 4 que lidam com o raciocínio de forma diferente e não produzem blocos de raciocínio editados.

No Claude 3.7 Sonnet, o seguinte se aplica:

  • Ocasionalmente, o raciocínio interno do Claude será sinalizado por nossos sistemas de segurança. Quando isso ocorre, criptografamos parte ou todo o bloco de raciocínio e o devolvemos a você como um bloco redacted_thinking. Os blocos redacted_thinking são descriptografados quando devolvidos à API, permitindo que o Claude dê continuidade à resposta sem perder o contexto.

  • Os blocos thinking e redacted_thinking são exibidos antes dos blocos de texto na resposta.

Ao criar aplicações voltadas para o cliente que usam o raciocínio estendido com o Claude 3.7 Sonnet, você deve:

  • Lembrar-se de que os blocos de raciocínio editados contêm conteúdo criptografado que não é legível por humanos.

  • Considerar a possibilidade de fornecer uma explicação simples, como: “Alguns raciocínios internos do Claude foram criptografados automaticamente por motivos de segurança. Isso não afeta a qualidade das respostas”.

  • Filtrar os blocos editados e, ao mesmo tempo, preservar os blocos de raciocínio normais, se você exibir blocos de raciocínio para os usuários.

  • Ser transparente, pois, ao usar recursos de raciocínio estendido, ocasionalmente algum raciocínio pode acabar sendo criptografado.

  • Implementar o tratamento adequado de erros para gerenciar com tranquilidade o raciocínio editado sem provocar falhas em sua interface de usuário.

Veja abaixo um exemplo que mostra blocos de raciocínio normais e editados:

{ "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..." } ] }
dica

Ver blocos de raciocínio editados em sua saída é um comportamento esperado. O modelo ainda assim pode usar esse raciocínio editado para respaldar as respectivas respostas, mantendo as barreiras de proteção de segurança.

Se precisar testar o tratamento do raciocínio editado em sua aplicação, é possível usar esta string de teste especial como prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB.

Ao transmitir os blocos thinking e redacted_thinking de volta à API em uma conversa de vários turnos, é necessário incluir o bloco completo não modificado de volta na API para o último turno do assistente. Isso é fundamental para manter o fluxo de raciocínio. Sugerimos sempre devolver todos os blocos de raciocínio à API. Para obter mais detalhes, consulte Raciocínio estendido com o uso de ferramentas.

O exemplo a seguir usa a InvokeModelWithResponseStreamAPI para demonstrar a estrutura de solicitação e resposta ao usar tokens de pensamento com redações.

Quando o streaming estiver habilitado, você receberá conteúdo inteligente dos eventos thinking_delta. Veja como lidar com o streaming com raciocínio:

Solicitação

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

Resposta

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"}