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:
- Adicione uma mensagem
role: "system"amessages, comcontentvazio e o novo nível de effort emoutput_config.effort. - Envie o cabeçalho beta
mid-conversation-output-config-2026-07-01. - 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
usercom nova entrada: a resposta de Claude a esse turno usa o novo nível. - Em qualquer outra posição, como entre um turno
assistante o próximo turnouser, como no exemplo anterior: o novo nível começa no próximo turnousercom 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_configpor mensagem retorna um erro 400:messages.N.output_config: Extra inputs are not permitted, ondeNé o índice da mensagemsystememmessages. - 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 retornamExtra inputs are not permittedem vez disso. - No Claude Sonnet 5.5 com
thinking: {"type": "between_tools"}, e no Claude Haiku 5.5 comthinking: {"type": "disabled"}, você não pode alterar o nível de effort no meio da conversa. Nesses casos, umoutput_config.effortpor 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
Claude API
- 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
Amazon Bedrock
- Status
- Beta
- API
- Messages API
- Cabeçalho beta
- Requer
- Modelos
- Claude Fable 5.1
- Claude Mythos 5.1
- Claude Opus 5.5
Amazon Bedrock (bedrock-runtime)
- Status
- Beta
- API
- Messages API
- Cabeçalho beta
- Requer
- Modelos
- Claude Fable 5.2, Fable 5.1
- Claude Mythos 5.2
- Claude Opus 5.5
- Observação
Envie o valor beta no array
anthropic_betado corpo da requisição.
Claude Platform on AWS
- Status
- Beta
- APIs
- Messages API
- Managed Agents Não compatível
- Cabeçalho beta
- Requer
- Modelos
- Claude Fable 5.2, Fable 5.1
- Claude Opus 5.5, Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Claude Models on Google Cloud (Anthropic managed)
- 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
- Claude Opus 5.5, Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Claude Models on Google Cloud (Google managed)
- Status
- Beta
- API
- Messages API
- 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
Microsoft Foundry (hosted on Azure)
- Status
- Beta
- API
- Messages API
- Cabeçalho beta
- Requer
- Modelos
- Claude Opus 5.5, Opus 5
- Claude Sonnet 5.5
- Claude Haiku 5.5
Microsoft Foundry (hosted on Anthropic)
- Status
- Beta
- API
- Messages API
- 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?