Pular para o conteúdo principal
Envie um reasoning_effort (Chat Completions) ou reasoning.effort (Responses) diferente em qualquer solicitação, e o Phaseo muda o esforço do Claude sem reiniciar o cache de prompts dele. Você não precisa mudar mais nada no seu código, desde que envie o raciocínio do Claude de volta sem alterações em toda solicitação. O Phaseo continua enviando ao Claude o esforço da primeira solicitação da sua conversa e adiciona cada mudança como um marcador de esforço depois da sua nova mensagem. Tudo o que vem antes do marcador continua igual, então o Claude lê isso do cache. Se você descartar o raciocínio, o Phaseo muda o esforço de nível superior no lugar, e o Claude processa de novo tudo a partir da primeira resposta dele em vez de ler do cache.

Como o Phaseo mantém o cache

O Claude só lê uma conversa em cache quando o início da solicitação é idêntico byte a byte, e o esforço de nível superior faz parte desse início. O esforço por mensagem da Anthropic muda o nível dentro de messages, com uma mensagem system que tem content vazio e um output_config.effort. O Phaseo escreve esses marcadores para você: O Phaseo não armazena nada entre as solicitações. Cada resposta do Claude termina com uma entrada de raciocínio que registra o nível em que ela foi executada, e o Phaseo reconstrói cada marcador anterior, no mesmo lugar, a partir das entradas que você envia de volta: As mensagens que você envia de volta nunca são alteradas. Os marcadores existem apenas na solicitação que o Phaseo envia ao Claude.

Enviar o raciocínio de volta sem alterações

Envie de volta cada entrada de raciocínio exatamente como você a recebeu, em toda solicitação: reasoning_details do Chat, itens reasoning do Responses e blocos thinking da Anthropic, criptografados ou não. Não os descarte, edite, reordene nem resuma. Sem eles, uma mudança de esforço reinicia o cache do Claude, e o Claude perde o raciocínio entre os passos do loop de ferramentas.
A entrada de esforço não tem texto. No Chat Completions, é a última entrada reasoning.encrypted em reasoning_details:
No Responses, é o último item reasoning em output, com um id que começa com rs_effort_:
O valor é opaco, e o Phaseo o remove antes que a conversa chegue a qualquer provedor.

Mudar o esforço no seu código

Adicione a resposta inteira do Claude à sua conversa e depois defina o esforço que você quer na próxima solicitação. O cache_control de nível superior ativa o cache nas rotas do Claude; veja Cache de prompts.

Chat Completions

Responses

O Phaseo não armazena respostas, então envie a conversa inteira em input, incluindo todos os itens de output.

Anthropic Messages

Em /v1/messages, envie você mesmo o marcador: uma mensagem system com content vazio e output_config.effort. Mantenha o mesmo output_config.effort de nível superior em toda solicitação, e mantenha cada marcador no lugar nas solicitações seguintes. O Phaseo adiciona o cabeçalho beta mid-conversation-output-config-2026-07-01, então você não precisa enviá-lo.
cURL
A posição do marcador decide quando o novo nível começa:
  • Logo depois de uma mensagem do usuário: a resposta do Claude a essa mensagem usa o novo nível.
  • Em qualquer outro lugar, como entre a resposta do Claude e a sua próxima mensagem, no exemplo acima: o novo nível começa na sua próxima mensagem.
Uma mensagem do usuário que contém apenas resultados de ferramentas não conta como nova mensagem. Em rotas sem esforço por mensagem, o Phaseo remove os marcadores e envia o nível em vigor como esforço de nível superior.

Quando a mudança reinicia o cache

O Phaseo muda o esforço de nível superior, como faz com outros provedores, quando:
  • O raciocínio está faltando. A sua resposta mais recente do Claude não tem entrada de esforço, porque o seu cliente descartou reasoning_details ou os itens reasoning.
  • A mudança vem entre passos do loop de ferramentas. A sua mensagem mais recente contém apenas resultados de ferramentas, então um marcador só valeria a partir da sua próxima mensagem. O Phaseo muda o esforço de nível superior para que este passo seja executado no nível que você pediu, e as mudanças seguintes voltam a usar marcadores.
  • A solicitação não define esforço ou desativa o raciocínio. Envie reasoning_effort ou reasoning.effort em toda solicitação. "none" e reasoning.enabled: false desativam o raciocínio.
  • A rota não oferece suporte. Veja Modelos compatíveis.
Uma mudança de nível superior mantém no cache a parte da conversa anterior à primeira resposta do Claude. O Claude processa de novo tudo a partir dessa resposta e cobra isso como nova entrada.

Modelos compatíveis

Em todas as outras rotas, incluindo o Claude no Azure, uma mudança de esforço vai para o nível superior.

Verificar se o cache se manteve

Leia as contagens de cache na solicitação seguinte a uma mudança: usage.prompt_tokens_details.cached_tokens no Chat Completions, usage.input_tokens_details.cached_tokens no Responses e usage.cache_read_input_tokens no Anthropic Messages. Campos de uso e preços lista todos os campos. Medimos a mesma conversa de Chat Completions com cinco solicitações em anthropic/claude-haiku-5.5 em 11 de novembro de 2026, uma vez enviando as entradas de esforço de volta e outra sem elas. O esforço foi high, high, low, low, high, e um documento de 3.400 tokens chegou na segunda mensagem:
Última modificação em 12 de novembro de 2026