A Anthropic acrescentou à documentação para desenvolvedores do Claude um recurso em beta: o ajuste de effort por mensagem. No meio de uma conversa de vários turnos, o desenvolvedor pode inserir uma mensagem system especial para mudar o nível de raciocínio das respostas seguintes, de high para low ou o contrário. A configuração de effort no nível superior da requisição permanece intocada, e o prefixo da conversa já armazenado em cache continua sendo aproveitado.
A sintaxe na documentação é curta. No array messages, basta adicionar uma mensagem com role igual a system e content como array vazio, contendo o novo valor de output_config.effort, e enviar o cabeçalho mid-conversation-output-config-2026-07-01. No exemplo, o effort de nível superior está em high e o modelo primeiro planeja, em nível alto, uma migração em três etapas de SQLite para PostgreSQL. Depois é inserida uma mensagem system de nível low; o usuário apenas pede que o plano seja condensado em uma frase, e essa rodada é respondida em nível baixo.
A partir de qual turno vale o novo nível
O momento em que a mudança entra em vigor depende de onde a mensagem é colocada, e as regras são bem detalhadas:
- Se vier logo após uma mensagem user com entrada nova, o Claude usa o novo nível na resposta desse turno;
- Se ficar em outro ponto, por exemplo entre a resposta do assistant e a mensagem user seguinte, o novo nível vale a partir da próxima mensagem user com entrada nova;
- Uma mensagem user que contém apenas tool_result não conta como entrada nova, de modo que várias idas e vindas de chamadas de ferramentas não disparam a troca.
O novo nível permanece válido até que uma mensagem posterior o altere. A documentação alerta de forma especial que essa mensagem deve ficar no final do conteúdo já enviado e ser mantida intacta nas requisições seguintes: não pode ser inserida antes de turnos já enviados, nem movida ou removida depois. Nos modelos que suportam preserved thinking (pensamento preservado), qualquer uma dessas alterações invalida os blocos de pensamento nos turnos do assistant posteriores a essa mensagem.
Os casos de erro também estão listados com clareza. Escrever output_config em uma mensagem system sem o cabeçalho beta faz a interface devolver um erro 400 com a mensagem Extra inputs are not permitted; com o cabeçalho beta, mas em um modelo sem suporte, como o Claude Fable 5, o resultado também é um 400. Quando o Sonnet 5.5 está com o modo de pensamento between_tools ou o Haiku 5.5 está com o pensamento desativado, também não é possível mudar o nível no meio da conversa; a documentação recomenda, nesses dois casos, usar o pensamento adaptativo.
Como era a troca antes e o que deixa de ser necessário
O effort sempre foi um parâmetro no nível da requisição, escrito no topo dela. Quem queria que a mesma conversa começasse com reflexão cuidadosa e terminasse com respostas rápidas só podia alterar o valor de nível superior entre duas requisições. A avaliação da documentação sobre essa prática é direta: ao mudar o valor de topo, o cache do prompt é recalculado desde o início, e o contexto longo acumulado até ali passa a ser cobrado como se não tivesse acertado o cache.
"A per-message change leaves everything before it unchanged, so the cached prefix still matches." (Uma mudança por mensagem deixa tudo o que vem antes inalterado, e o prefixo em cache continua coincidindo.)
A documentação menciona ainda um detalhe fácil de passar despercebido: no Claude Fable 5.1, alterar o valor de topo já orienta o modelo de forma pouco confiável, porque as respostas anteriores foram escritas segundo o nível antigo e o modelo tende a manter coerência com o próprio estilo. A troca por mensagem grava na própria conversa o aviso de que "a partir daqui muda a marcha", e o modelo consegue enxergar esse ponto.
Isso é mais útil em ciclos de Agent de longa duração. Um agente de programação pode gastar nível alto para ler a base de código e definir o plano de alteração, e depois executar e confirmar dezenas de turnos em nível baixo, com o prefixo de contexto sempre igual e a taxa de acertos do cache preservada. Antes era preciso escolher entre flexibilidade de nível e economia de cache; agora é possível ter as duas coisas.
Aplicações de atendimento ao cliente e de perguntas e respostas também podem aproveitar. No início, o usuário descreve uma falha complexa e o modelo diagnostica em nível alto; depois de localizado o problema, quando o usuário só pergunta "onde exatamente clico no segundo passo", baixar para o nível baixo deixa a resposta bem mais rápida. No sentido inverso, se no meio de um bate-papo o usuário despeja um contrato para ser revisado cláusula por cláusula, a aplicação pode subir o nível temporariamente. Essas trocas antes exigiam abrir mão do cache ou simplesmente não eram feitas.
Abrangência do suporte
Quanto aos modelos, Fable 5.2, Mythos 5.2, Fable 5.1, Mythos 5.1, Opus 5.5, Opus 5, Sonnet 5.5 e Haiku 5.5 constam da lista beta, e as plataformas de nuvem cobertas variam de um modelo para outro. Quanto às plataformas, a API do Claude, o Amazon Bedrock, o Claude Platform on AWS, as duas modalidades de hospedagem no Google Cloud e o Microsoft Foundry aparecem marcados como beta. Quem usa a interface InvokeModel do Bedrock precisa escrever o valor beta no array anthropic_beta do corpo da requisição, e não em um cabeçalho.
O Managed Agents ainda não oferece suporte ao recurso; a alternativa indicada pela documentação é sobrescrever, no nível da sessão, a configuração de modelo do Agent. O recurso continua em fase beta, a data no nome do cabeçalho beta é apenas um identificador de versão da interface, e a documentação não diz se a grafia mudará quando a versão estável for lançada.
Fontes: página Per-message effort da documentação para desenvolvedores do Claude (conferidos o nome do cabeçalho beta, a lista de modelos e plataformas, as regras sobre onde a mudança vale e as mensagens de erro), CocoLoop, explicação do parâmetro effort na documentação para desenvolvedores do Claude.