Voltar aos guias
Solução de problemas·23 de setembro de 2026·6 min de leitura

“`temperature` e `top_p` não podem ser especificados simultaneamente para este modelo” — envie um deles e, nos modelos Claude mais recentes, nenhum

Envie apenas um dos dois. A Anthropic documenta a regra para o Claude Haiku 4.5, desenvolvedores encontram o mesmo erro 400 no Claude Opus 4.6 e Sonnet 4.6, e no Claude Opus 4.7 e posteriores a regra fica mais rígida: nenhum dos dois. Muitas vezes, o culpado é um cliente ou framework que preenche o parâmetro que você nunca definiu.

Última revisão em .

Envie apenas um dos dois. A Anthropic documenta a regra para o Claude Haiku 4.5, desenvolvedores encontram o mesmo erro 400 no Claude Opus 4.6 e Sonnet 4.6, e no Claude Opus 4.7 e posteriores a regra fica mais rígida: nenhum dos dois. Muitas vezes, o culpado é um cliente ou framework que preenche o parâmetro que você nunca definiu.

O erro

Anthropic API response (HTTP 400)
{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "`temperature` and `top_p` cannot both be specified for this model. Please use only one."
  },
  "request_id": "req_..."
}

Causas e soluções em resumo

CausaSolução
Seu código, ou um framework usado por ele, envia ambosEnvie somente aquele que você pretende usar e exclua a outra chave.
O segundo é um valor padrão “neutro”, como top_p: 1Relatado como falhando da mesma forma. Remova a chave em vez de normalizá-la.
Uma versão antiga do LangChain JS ou do n8nAtualize: @langchain/anthropic 1.3.24 ou posterior, n8n 1.114.1 ou posterior.
O LiteLLM encaminha ambosAdicione additional_drop_params: ["top_p"] a esse modelo.
Você migrou para Claude Opus 4.7 ou posterior, Sonnet 5 ou Fable 5Regra mais rígida: remova ambos — qualquer valor não padrão de qualquer um deles é rejeitado.

Quais modelos Claude aplicam essa regra (em setembro de 2026)

O guia de migração do Haiku 4.5 da Anthropic: use apenas temperature ou top_p, não ambos — definir os dois retorna um 400 no Claude Haiku 4.5, uma mudança incompatível para código vindo do Claude 3.x (https://platform.claude.com/docs/en/models/haiku-4-5/migration-guide). As notas de versão da API da Anthropic sinalizaram a mesma regra no lançamento do Claude Opus 4.1 em 5 de agosto de 2025, um modelo desde então aposentado (https://platform.claude.com/docs/en/release-notes/api). A AWS informa a regra para Claude Sonnet 4.5 e Claude Haiku 4.5 no Bedrock (https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.html). Não encontramos uma página da Anthropic que declare a regra para os modelos 4.6, mas desenvolvedores relatam esse mesmo 400 no Claude Opus 4.6 (issue #12846 do OpenHands) e no Claude Sonnet 4.6 (issue #566 do opencommit). O Claude Opus 4.7 e posteriores são tratados abaixo: nesse caso, um já é demais.

Envie um — e exclua a outra chave

Mantenha temperature, a menos que tenha um motivo para não fazê-lo: a referência da API da Anthropic descreve top_p como recomendado apenas para casos de uso avançados (https://platform.claude.com/docs/en/api/messages). Remova a segunda chave em vez de defini-la como um valor que você considera neutro — um desenvolvedor relatou que top_p de 1.0 junto com temperature de 0.3 ainda falhou no Claude Sonnet 4.5 (issue #18304 do n8n).

one_knob.py
from openai import OpenAI

client = OpenAI(base_url="https://api.kunavo.com/v1", api_key="sk-kn-...")

def one_sampling_knob(params: dict) -> dict:
    """Where the rule applies, send temperature or top_p, not both. Keep temperature."""
    if params.get("temperature") is not None:
        params.pop("top_p", None)
    return params

sampling = one_sampling_knob({"temperature": 0.3, "top_p": 0.9})  # {"temperature": 0.3}

resp = client.chat.completions.create(
    model="claude-haiku-4-5",
    max_tokens=512,
    messages=[{"role": "user", "content": "Classify this support ticket: ..."}],
    **sampling,
)
print(resp.choices[0].message.content)

Corrija isso no cliente que adiciona o segundo parâmetro

LangChain JS: ChatAnthropic 0.3.x enviava uma temperature padrão junto com o top_p definido por você (issue #9258, corrigida na linha 0.3 pela PR #9362 em novembro de 2025), e a PR #10420, lançada em @langchain/anthropic 1.3.24 em 17 de março de 2026, impede que sejam adicionadas chaves de amostragem que você deixou sem definir (https://github.com/langchain-ai/langchainjs/pull/10420). n8n: o nó Anthropic Chat Model passava os padrões do LangChain (topP -1, temperature 0.7); corrigido no n8n 1.114.1, lançado em 2 de outubro de 2025 (https://github.com/n8n-io/n8n/pull/20286). LiteLLM: indique o parâmetro a remover com additional_drop_params, por chamada ou por modelo (https://docs.litellm.ai/docs/completion/drop_params) — exceto na rota de passagem da Anthropic, onde o relatório foi encerrado porque solicitações de passagem não são modificadas (https://github.com/BerriAI/litellm/issues/15097). Amazon Bedrock: defina temperature ou topP em Converse inferenceConfig, ou temperature ou top_p no corpo de InvokeModel — nunca ambos (https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InferenceConfiguration.html).

litellm-config.yaml
model_list:
  - model_name: claude-haiku-4-5
    litellm_params:
      model: openai/claude-haiku-4-5        # Kunavo speaks the OpenAI chat shape
      api_base: https://api.kunavo.com/v1
      api_key: sk-kn-...
      additional_drop_params: ["top_p"]     # keep temperature, never send top_p

No Claude Opus 4.7 e posteriores, não envie nenhum dos dois

Os modelos mais recentes vão além. Definir temperature, top_p ou top_k com qualquer valor não padrão no Claude Opus 4.7 e modelos posteriores retorna um 400 (https://platform.claude.com/docs/en/models/opus-5-5/migration-guide); o mesmo vale para Claude Sonnet 5 (https://platform.claude.com/docs/en/models/sonnet-5/migration-guide) e se aplica também ao Claude Fable 5 (https://platform.claude.com/docs/en/models/fable-5/migration-guide) e Fable 5.1 (https://platform.claude.com/docs/en/models/fable-5-1/migration-guide). A mensagem muda — desenvolvedores veem “`temperature` is deprecated for this model.” — e a referência da API da Anthropic agora marca os três parâmetros como obsoletos: em modelos lançados depois do Claude Opus 4.6, aceita apenas temperature de 1.0 ou top_p de 0.99 ou superior, por compatibilidade retroativa, e rejeita top_k em qualquer valor (https://platform.claude.com/docs/en/api/messages). O SDK Python da Anthropic removeu esses parâmetros de seus métodos Messages na v1.0, lançada em 20 de agosto de 2026 (https://platform.claude.com/docs/en/release-notes/api).

Se você estiver chamando pela Kunavo

Nos sete modelos claude-* em que a Anthropic removeu a amostragem — claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7 e claude-sonnet-5 — o Kunavo exclui temperature, top_p e top_k da solicitação antes que ela saia do gateway, tanto em /v1/chat/completions quanto em /v1/messages. Você não verá esse erro nesses sete, mas os valores enviados não têm efeito: a solicitação segue para o upstream como se você os tivesse omitido. Em claude-opus-4-6, claude-sonnet-4-6 e claude-haiku-4-5, o Kunavo não remove nada: o tradutor de chat copia qualquer valor numérico de temperature, top_p ou top_k para a solicitação Claude sem alterações, e /v1/messages encaminha o corpo exatamente como enviado; portanto, envie apenas um dos dois nesses modelos. Se o upstream rejeitar o par, o erro 400 chega até você com o texto da mensagem do upstream inalterado, não é repetido em outro canal e é registrado com custo zero. Outro parâmetro de solicitação que os modelos mais recentes rejeitam é tratado em o guia max_tokens vs max_completion_tokens.

Perguntas frequentes

Devo usar temperature ou top_p com Claude?

Temperature, a menos que você tenha um motivo específico. A referência da API da Anthropic recomenda top_p apenas para casos de uso avançados, e no Claude Opus 4.7 e posteriores nenhum dos dois pode ser definido com um valor não padrão.

top_p = 1 conta como não defini-lo?

Não conte com isso. Um desenvolvedor relatou o mesmo erro 400 com top_p em 1.0 junto com temperature no Claude Sonnet 4.5 (issue #18304 do n8n). Exclua a chave em vez de defini-la com um valor que pareça neutro.

Por que o n8n ou o LangChain envia top_p quando nunca o defini?

Ambos encaminhavam valores padrão. O nó Anthropic Chat Model do n8n enviava os padrões do LangChain (topP -1, temperature 0.7) até a versão 1.114.1, e o ChatAnthropic no LangChain JS 0.3.x enviava uma temperature padrão junto com o top_p definido por você. Atualize: n8n 1.114.1 ou posterior, @langchain/anthropic 1.3.24 ou posterior.

O que significa “`temperature` is deprecated for this model”?

É a regra mais rígida no Claude Opus 4.7 e posteriores, Sonnet 5 e Fable 5 e 5.1: esses modelos rejeitam diretamente valores de amostragem não padrão. Remova os parâmetros. Por meio do Kunavo, os modelos que oferecemos têm esses parâmetros removidos, então a chamada prossegue.

Uma solicitação rejeitada custa alguma coisa no Kunavo?

Não. Uma solicitação rejeitada pelo upstream é registrada com custo zero.

Guias relacionados

Mais detalhes sobre o significado dos erros estão em referência de erros; obter uma chave leva um minuto por meio de cadastro e da guia de autenticação.