Claude Platform Docs
MensagensEsforço

Esforço por mensagem

Use uma mensagem do sistema para alterar o nível de effort no meio de uma conversa e manter o cache de prompt.

Uma alteração de “effort” (esforço) por mensagem define um novo nível de effort para os turnos posteriores de uma conversa sem alterar o valor de nível superior da solicitação, de modo que o prefixo em cache ainda corresponde.

Alterar o nível de esforço

Para alterar o nível no meio de uma conversa:

  1. Adicione uma mensagem role: "system" a messages, com content vazio e o novo nível de effort em output_config.effort.
  2. Envie o cabeçalho beta mid-conversation-output-config-2026-07-01.
  3. Deixe o valor de nível superior inalterado.

O exemplo a seguir mantém o valor de nível superior em high e reduz para low em um acompanhamento rotineiro:

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-fable-5-1",
    max_tokens=4096,
    output_config={"effort": "high"},
    messages=[
        {
            "role": "user",
            "content": "Plan a migration from SQLite to PostgreSQL in three short steps.",
        },
        {
            "role": "assistant",
            "content": "1. Export the SQLite data. 2. Create the PostgreSQL schema. 3. Import the data and verify row counts.",
        },
        # Mensagem do sistema só de esforço: o novo nível vale a partir do próximo turno do usuário.
        {"role": "system", "content": [], "output_config": {"effort": "low"}},
        {"role": "user", "content": "Summarize the plan in one sentence."},
    ],
    betas=["mid-conversation-output-config-2026-07-01"],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

A posição da mensagem decide quando o novo nível começa:

  • Diretamente após um turno user com nova entrada: a resposta de Claude a esse turno usa o novo nível.
  • Em qualquer outra posição, como entre um turno assistant e o próximo turno user, como no exemplo anterior: o novo nível começa no próximo turno user com nova entrada.

Um turno user que contém apenas blocos tool_result não conta como nova entrada.

O novo nível permanece em vigor até que uma mensagem posterior o altere.

Coloque a mensagem depois de tudo o que você já enviou e mantenha-a no lugar nas solicitações posteriores. Não a insira antes de turnos que você já enviou, e não a mova nem a remova depois. Em modelos com preserved thinking (pensamento preservado), qualquer uma dessas alterações invalida os blocos de pensamento nos turnos assistant após a mensagem. O que a API faz com um bloco inválido explica o que acontece em seguida.

Se ela estiver ao lado de uma mensagem system que tenha conteúdo, ambas as mensagens devem seguir as regras de posicionamento para mensagens do sistema no meio da conversa.

Com a API InvokeModel do Amazon Bedrock, envie o valor beta no array anthropic_beta do corpo da solicitação em vez do cabeçalho. Para os modelos que oferecem suporte a effort por mensagem lá, consulte Mensagens do sistema no meio da conversa no Bedrock.

Erros

  • Sem o cabeçalho beta, um output_config por mensagem retorna um erro 400: messages.N.output_config: Extra inputs are not permitted, onde N é o índice da mensagem system em messages.
  • Com o cabeçalho beta, modelos sem effort por mensagem, como o Claude Fable 5, retornam um erro 400: output_config.effort requires a model that supports per-turn effort; this model does not. No Amazon Bedrock, esses modelos e o Claude Opus 5 retornam Extra inputs are not permitted em vez disso.
  • No Claude Sonnet 5.5 com thinking: {"type": "between_tools"}, e no Claude Haiku 5.5 com thinking: {"type": "disabled"}, você não pode alterar o nível de effort no meio da conversa. Nesses casos, um output_config.effort por mensagem com um novo nível retorna um erro 400. Para variar o effort a cada turno, use o pensamento adaptativo.

Esforço por mensagem ou de nível superior

Prefira o effort por mensagem a alterar o valor de nível superior entre solicitações. Uma alteração por mensagem deixa tudo o que vem antes dela inalterado, de modo que o prefixo em cache ainda corresponde. Uma alteração de nível superior reinicia o cache. No Claude Fable 5.1, uma alteração de nível superior também direciona o modelo de forma menos confiável. As respostas anteriores do modelo foram escritas no nível anterior, e o modelo tende a permanecer consistente com elas.

Disponibilidade

Esforço por mensagem
Status
Beta
APIs
  • Messages API
  • Managed Agents Não compatível
Cabeçalho beta
Requer
Modelos
  • Claude Fable 5.2, Fable 5.1
  • Claude Mythos 5.2, Mythos 5.1
  • Claude Opus 5.5, Opus 5
  • Claude Sonnet 5.5
  • Claude Haiku 5.5

Esta página foi útil?