Kembali ke panduan
Pemecahan masalah·23 September 2026·Baca 6 menit

“`temperature` dan `top_p` tidak dapat ditentukan secara bersamaan untuk model ini” — kirim salah satunya, dan pada model Claude yang lebih baru jangan kirim keduanya

Kirim salah satu dari keduanya. Anthropic mendokumentasikan aturan ini untuk Claude Haiku 4.5, pengembang mengalami 400 yang sama pada Claude Opus 4.6 dan Sonnet 4.6, dan pada Claude Opus 4.7 serta versi setelahnya aturannya diperketat menjadi tidak satu pun. Sering kali penyebabnya adalah klien atau framework yang mengisi parameter yang tidak pernah Anda tetapkan.

Terakhir ditinjau pada .

Kirim salah satu dari keduanya. Anthropic mendokumentasikan aturan ini untuk Claude Haiku 4.5, pengembang mengalami 400 yang sama pada Claude Opus 4.6 dan Sonnet 4.6, dan pada Claude Opus 4.7 serta versi setelahnya aturannya diperketat menjadi tidak satu pun. Sering kali penyebabnya adalah klien atau framework yang mengisi parameter yang tidak pernah Anda tetapkan.

Error

Respons Anthropic API (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_..."
}

Ringkasan penyebab dan perbaikan

PenyebabPerbaikan
Kode Anda, atau framework di bawahnya, mengirim keduanyaKirim hanya parameter yang Anda maksud dan hapus kunci lainnya.
Parameter kedua adalah default “netral”, seperti top_p: 1Dilaporkan tetap gagal dengan cara yang sama. Hapus kuncinya, bukan menormalkannya.
Versi LangChain JS atau n8n yang lebih lamaTingkatkan versi: @langchain/anthropic 1.3.24 atau lebih baru, n8n 1.114.1 atau lebih baru.
LiteLLM meneruskan keduanyaTambahkan additional_drop_params: ["top_p"] ke model tersebut.
Anda beralih ke Claude Opus 4.7 atau yang lebih baru, Sonnet 5, atau Fable 5Aturannya lebih ketat: hapus keduanya — nilai non-default apa pun dari salah satunya akan ditolak.

Model Claude mana yang menerapkannya (per September 2026)

Panduan migrasi Haiku 4.5 dari Anthropic: gunakan hanya temperature atau top_p, bukan keduanya — menetapkan keduanya mengembalikan 400 pada Claude Haiku 4.5, perubahan yang dapat memutus kode dari Claude 3.x (https://platform.claude.com/docs/en/models/haiku-4-5/migration-guide). Catatan rilis API Anthropic menandai aturan yang sama saat peluncuran Claude Opus 4.1 pada 5 Agustus 2025, model yang kini sudah dihentikan (https://platform.claude.com/docs/en/release-notes/api). AWS menyatakannya untuk Claude Sonnet 4.5 dan Claude Haiku 4.5 di Bedrock (https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages-request-response.html). Kami tidak menemukan halaman Anthropic yang menyatakan aturan ini untuk model 4.6, tetapi pengembang melaporkan 400 yang persis sama dari Claude Opus 4.6 (isu OpenHands #12846) dan Claude Sonnet 4.6 (isu opencommit #566). Claude Opus 4.7 dan versi setelahnya dibahas di bawah: di sana, satu parameter saja sudah terlalu banyak.

Kirim salah satunya — dan hapus kunci lainnya

Pertahankan temperature kecuali Anda memiliki alasan khusus: referensi API Anthropic menjelaskan bahwa top_p direkomendasikan hanya untuk kasus penggunaan lanjutan (https://platform.claude.com/docs/en/api/messages). Hapus kunci kedua, bukan menetapkannya ke nilai yang menurut Anda netral — seorang pengembang melaporkan bahwa top_p 1.0 bersama temperature 0.3 tetap gagal pada Claude Sonnet 4.5 (isu n8n #18304).

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)

Perbaiki di klien yang menambahkan parameter kedua

LangChain JS: ChatAnthropic 0.3.x mengirim default temperature bersama top_p yang Anda tetapkan (isu #9258, diperbaiki pada lini 0.3 melalui PR #9362 pada November 2025), dan PR #10420 yang dirilis dalam @langchain/anthropic 1.3.24 pada 17 Maret 2026 menghentikan penambahan kunci sampling apa pun yang tidak Anda tetapkan (https://github.com/langchain-ai/langchainjs/pull/10420). n8n: node Anthropic Chat Model meneruskan default LangChain (topP -1, temperature 0.7); diperbaiki pada n8n 1.114.1 yang dirilis 2 Oktober 2025 (https://github.com/n8n-io/n8n/pull/20286). LiteLLM: sebutkan parameter yang akan dihapus dengan additional_drop_params, per panggilan atau per model (https://docs.litellm.ai/docs/completion/drop_params) — kecuali pada rute pass-through Anthropic, yang laporannya ditutup karena permintaan pass-through tidak dimodifikasi (https://github.com/BerriAI/litellm/issues/15097). Amazon Bedrock: tetapkan temperature atau topP di Converse inferenceConfig, atau temperature atau top_p di isi InvokeModel — jangan pernah keduanya (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

Pada Claude Opus 4.7 dan versi setelahnya, jangan kirim satu pun

Model yang lebih baru melangkah lebih jauh. Menetapkan temperature, top_p, atau top_k ke nilai non-default apa pun pada Claude Opus 4.7 dan versi setelahnya mengembalikan 400 (https://platform.claude.com/docs/en/models/opus-5-5/migration-guide); hal yang sama berlaku untuk Claude Sonnet 5 (https://platform.claude.com/docs/en/models/sonnet-5/migration-guide), serta berlanjut ke Claude Fable 5 (https://platform.claude.com/docs/en/models/fable-5/migration-guide) dan Fable 5.1 (https://platform.claude.com/docs/en/models/fable-5-1/migration-guide). Pesannya berubah — pengembang melihat “`temperature` sudah tidak digunakan untuk model ini.” — dan referensi API Anthropic kini menandai ketiga parameter sebagai deprecated: pada model yang dirilis setelah Claude Opus 4.6, hanya temperature 1.0 atau top_p 0.99 ke atas yang diterima untuk kompatibilitas mundur, dan top_k ditolak pada nilai apa pun (https://platform.claude.com/docs/en/api/messages). Anthropic Python SDK menghapusnya dari metode Messages pada v1.0, yang dirilis 20 Agustus 2026 (https://platform.claude.com/docs/en/release-notes/api).

Jika Anda melakukan panggilan melalui Kunavo

Pada tujuh model claude-* tempat Anthropic menghapus sampling — claude-fable-5-1, claude-fable-5, claude-opus-5-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, dan claude-sonnet-5 — Kunavo menghapus temperature, top_p, dan top_k dari permintaan sebelum keluar dari gateway, baik pada /v1/chat/completions maupun /v1/messages. Anda tidak akan melihat kesalahan ini dari ketujuh model tersebut, tetapi nilai yang Anda kirim tidak berpengaruh: permintaan diteruskan ke upstream seolah-olah Anda tidak mengirimkannya. Pada claude-opus-4-6, claude-sonnet-4-6, dan claude-haiku-4-5, Kunavo tidak menghapus apa pun: penerjemah chat menyalin temperature, top_p, atau top_k numerik apa pun ke permintaan Claude tanpa perubahan, dan /v1/messages meneruskan isi permintaan seperti yang dikirim, jadi kirim salah satu dari keduanya. Jika upstream menolak pasangan tersebut, respons 400 dengan teks pesan upstream yang tidak diubah diteruskan kepada Anda, tidak dicoba ulang melalui kanal lain, dan dicatat dengan biaya nol. Parameter permintaan lain yang ditolak model-model baru dibahas di panduan max_tokens vs max_completion_tokens.

Pertanyaan umum

Haruskah saya menggunakan temperature atau top_p dengan Claude?

Temperature, kecuali Anda memiliki alasan khusus. Referensi API Anthropic merekomendasikan top_p hanya untuk kasus penggunaan lanjutan, dan pada Claude Opus 4.7 serta versi setelahnya keduanya tidak boleh ditetapkan ke nilai non-default.

Apakah top_p = 1 dianggap tidak menetapkannya?

Jangan mengandalkannya. Seorang pengembang melaporkan 400 yang sama dengan top_p 1.0 bersama temperature pada Claude Sonnet 4.5 (isu n8n #18304). Hapus kuncinya, bukan menetapkannya ke nilai yang tampak netral.

Mengapa n8n atau LangChain mengirim top_p padahal saya tidak pernah menetapkannya?

Keduanya meneruskan default. Node Anthropic Chat Model n8n mengirim default LangChain (topP -1, temperature 0.7) hingga versi 1.114.1, dan ChatAnthropic di LangChain JS 0.3.x mengirim default temperature bersama top_p yang Anda tetapkan. Tingkatkan versi: n8n 1.114.1 atau lebih baru, @langchain/anthropic 1.3.24 atau lebih baru.

Apa arti “`temperature` sudah tidak digunakan untuk model ini”?

Itu adalah aturan yang lebih ketat pada Claude Opus 4.7 dan versi setelahnya, Sonnet 5, serta Fable 5 dan 5.1: model-model tersebut langsung menolak nilai sampling non-default. Hapus parameternya. Melalui Kunavo, parameter tersebut dihapus pada model yang kami layani, sehingga panggilan tetap berjalan.

Apakah permintaan yang ditolak dikenai biaya di Kunavo?

Tidak. Permintaan yang ditolak upstream dicatat dengan biaya nol.

Panduan terkait

Detail semantik error lainnya tersedia di referensi error; mendapatkan kunci hanya perlu satu menit melalui pendaftaran dan panduan autentikasi.