Entendendo a janela de contexto

A “janela de contexto” refere-se à totalidade da quantidade de texto que um modelo de linguagem pode consultar e referenciar ao gerar novo texto, mais o novo texto que ele gera. Isso é diferente do grande corpus de dados com o qual o modelo de linguagem foi treinado, e representa uma “memória de trabalho” para o modelo. Uma janela de contexto maior permite que o modelo entenda e responda a prompts mais complexos e longos, enquanto uma janela de contexto menor pode limitar a capacidade do modelo de lidar com prompts mais longos ou manter a coerência em conversas extensas.

O diagrama abaixo ilustra o comportamento padrão da janela de contexto para solicitações de API1:

1Para interfaces de chat, como o claude.ai, as janelas de contexto também podem ser configuradas em um sistema rotativo “primeiro a entrar, primeiro a sair”.

  • Acumulação progressiva de tokens: À medida que a conversa avança através dos turnos, cada mensagem do usuário e resposta do assistente se acumula dentro da janela de contexto. Os turnos anteriores são preservados completamente.
  • Padrão de crescimento linear: O uso do contexto cresce linearmente a cada turno, com os turnos anteriores preservados completamente.
  • Capacidade de 200K tokens: A janela de contexto total disponível (200.000 tokens) representa a capacidade máxima para armazenar o histórico da conversa e gerar nova saída do Claude.
  • Fluxo de entrada-saída: Cada turno consiste em:
    • Fase de entrada: Contém todo o histórico de conversa anterior mais a mensagem atual do usuário
    • Fase de saída: Gera uma resposta em texto que se torna parte de uma entrada futura

A janela de contexto com pensamento estendido

Ao usar o pensamento estendido, todos os tokens de entrada e saída, incluindo os tokens usados para pensar, contam para o limite da janela de contexto, com algumas nuances em situações de múltiplos turnos.

Os tokens do orçamento de pensamento são um subconjunto do seu parâmetro max_tokens, são cobrados como tokens de saída e contam para os limites de taxa.

No entanto, os blocos de pensamento anteriores são automaticamente removidos do cálculo da janela de contexto pela API da Anthropic e não fazem parte do histórico da conversa que o modelo “vê” para os turnos subsequentes, preservando a capacidade de tokens para o conteúdo real da conversa.

O diagrama abaixo demonstra o gerenciamento especializado de tokens quando o pensamento estendido está ativado:

  • Remoção do pensamento estendido: Blocos de pensamento estendido (mostrados em cinza escuro) são gerados durante a fase de saída de cada turno, mas não são transportados como tokens de entrada para turnos subsequentes. Você não precisa remover os blocos de pensamento por conta própria. A API da Anthropic faz isso automaticamente se você os passar de volta.
  • Detalhes técnicos de implementação:
    • A API automaticamente exclui blocos de pensamento de turnos anteriores quando você os passa de volta como parte do histórico da conversa.
    • Os tokens de pensamento estendido são cobrados como tokens de saída apenas uma vez, durante sua geração.
    • O cálculo efetivo da janela de contexto se torna: context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens.
    • Os tokens de pensamento incluem tanto blocos thinking quanto blocos redacted_thinking.

Esta arquitetura é eficiente em termos de tokens e permite um raciocínio extensivo sem desperdício de tokens, já que os blocos de pensamento podem ser substanciais em comprimento.

Você pode ler mais sobre a janela de contexto e pensamento estendido em nosso guia de pensamento estendido.

A janela de contexto com pensamento estendido e uso de ferramentas

O diagrama abaixo ilustra o gerenciamento de tokens da janela de contexto ao combinar pensamento estendido com uso de ferramentas:

1

Arquitetura do primeiro turno

  • Componentes de entrada: Configuração de ferramentas e mensagem do usuário
  • Componentes de saída: Pensamento estendido + resposta em texto + solicitação de uso de ferramenta
  • Cálculo de tokens: Todos os componentes de entrada e saída contam para a janela de contexto, e todos os componentes de saída são cobrados como tokens de saída.
2

Manipulação do resultado da ferramenta (turno 2)

  • Componentes de entrada: Todos os blocos do primeiro turno, bem como o tool_result. O bloco de pensamento estendido deve ser retornado com os resultados da ferramenta correspondentes. Este é o único caso em que você tem que retornar blocos de pensamento.
  • Componentes de saída: Depois que os resultados da ferramenta foram passados de volta ao Claude, ele responderá apenas com texto (sem pensamento estendido adicional até a próxima mensagem do user).
  • Cálculo de tokens: Todos os componentes de entrada e saída contam para a janela de contexto, e todos os componentes de saída são cobrados como tokens de saída.
3

Terceiro Passo

  • Componentes de entrada: Todas as entradas e a saída do turno anterior são transportadas, com exceção do bloco de pensamento, que pode ser descartado agora que o Claude completou todo o ciclo de uso da ferramenta. A API removerá automaticamente o bloco de pensamento se você o passar de volta, ou você pode removê-lo por conta própria nesta fase. É também aqui que você adicionaria o próximo turno do User.
  • Componentes de saída: Como há um novo turno do User fora do ciclo de uso da ferramenta, o Claude gerará um novo bloco de pensamento estendido e continuará a partir daí.
  • Cálculo de tokens: Os tokens de pensamento anteriores são automaticamente removidos dos cálculos da janela de contexto. Todos os outros blocos anteriores ainda contam como parte da janela de tokens, e o bloco de pensamento no turno atual do Assistant conta como parte da janela de contexto.
  • Considerações para uso de ferramentas com pensamento estendido:
    • Ao postar resultados de ferramentas, todo o bloco de pensamento não modificado que acompanha essa solicitação específica de ferramenta (incluindo partes de assinatura/redação) deve ser incluído.
    • O sistema usa assinaturas criptográficas para verificar a autenticidade do bloco de pensamento. Não preservar blocos de pensamento durante o uso de ferramentas pode quebrar a continuidade do raciocínio do Claude. Assim, se você modificar blocos de pensamento, a API retornará um erro.

Não há intercalação de pensamento estendido e chamadas de ferramentas - você não verá pensamento estendido, depois chamadas de ferramentas, depois mais pensamento estendido, sem um turno do usuário não-tool_result entre eles. Além disso, o uso de ferramentas dentro do próprio bloco de pensamento estendido não é atualmente suportado, embora o Claude possa raciocinar sobre quais ferramentas deve usar e como chamá-las dentro do bloco de pensamento.

Você pode ler mais sobre o uso de ferramentas com pensamento estendido em nosso guia de pensamento estendido

Gerenciamento da janela de contexto com modelos Claude mais recentes

Nos modelos Claude mais recentes (começando com o Claude 3.7 Sonnet), se a soma dos tokens do prompt e tokens de saída exceder a janela de contexto do modelo, o sistema retornará um erro de validação em vez de truncar silenciosamente o contexto. Essa mudança fornece um comportamento mais previsível, mas requer um gerenciamento de tokens mais cuidadoso.

Para planejar seu uso de tokens e garantir que você permaneça dentro dos limites da janela de contexto, você pode usar a API de contagem de tokens para estimar quantos tokens suas mensagens usarão antes de enviá-las ao Claude.

Veja nossa tabela de comparação de modelos para uma lista de tamanhos de janela de contexto por modelo.

Próximos passos