Janelas de contexto
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 blocosredacted_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:
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.
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.
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
Tabela de comparação de modelos
Veja nossa tabela de comparação de modelos para uma lista de tamanhos de janela de contexto e preços de tokens de entrada/saída por modelo.
Visão geral do pensamento estendido
Aprenda mais sobre como o pensamento estendido funciona e como implementá-lo junto com outros recursos, como uso de ferramentas e cache de prompts.
Was this page helpful?