Claudeのtemperatureエラー|deprecatedと出る原因と直し方

新しいClaudeモデルに切り替えたとたん、`temperature` is deprecated for this model. という400エラーで全リクエストが止まる。これは障害でも契約の問題でもなく、Claude Opus 4.7以降のモデルの仕様です。temperatureを1.0以外に設定すると拒否されるため、temperature・top_p・top_kをリクエストから外せば直ります。本記事では、対象モデルの見分け方と、自分で指定していないのに出る場合の確認先を解説します。
⚠️ その前に:Claude全体の障害でないか
このエラーは設定が原因のため障害とは無関係ですが、別のエラーも同時に出ている場合は先に稼働状況を確認してください。
Claudeのtemperatureエラーとは
ClaudeのAPIに、新しいモデルが受け付けない設定値を送ったときに返るエラーです。HTTP 400としてリクエストごと拒否されるため、回答は返りません。
表示されるエラー文
APIから直接返る形は次のとおりです(microsoft/amplifier Issue #303に貼られた実際のエラー。request_idは伏せています)。
{"type": "error", "error": {"type": "invalid_request_error", "message": "`temperature` is deprecated for this model."}, "request_id": "req_…"}
Amazon Bedrock経由で使っている場合は、同じ文の前に The model returned the following errors: という前置きが付いた形で表示されます(cline/cline Issue #10573の報告)。どちらも見分けるポイントは `temperature` is deprecated の部分です。
なお、Python SDKはv1.0以降でこれらの項目自体を定義していません。公式の移行ガイドによれば、渡すとAPIエラーではなく TypeError になります。
障害ではなく新モデルの仕様
APIリファレンスのtemperatureの説明には、次のように書かれています(2026年9月13日確認)。
Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 will be accepted for backwards compatibility, all other values will be rejected with a 400 error.
(非推奨。Claude Opus 4.6より後に出たモデルはtemperatureの設定に対応しません。後方互換のため1.0は受け付けますが、それ以外の値はすべて400エラーで拒否されます。)
待てば直る種類のエラーではないため、リクエストの中身を直す必要があります。
対象モデルの見分け方
すべてのClaudeモデルで出るわけではありません。使っているモデル名で、対象かどうかを判定します。
対象になるモデル一覧
制約はOpus系ではOpus 4.7から始まり、Sonnet系ではSonnet 5から加わりました。Sonnet 5の公式ページも、temperature・top_p・top_kを既定値以外にすると400エラーになると明記しています。その後に出たOpus 5.5(2026年9月22日)とSonnet 5.5(同9月28日)も同じ扱いです。Haiku 5.5(同10月7日)も、移行ガイドで、temperatureは1、top_pは既定値の0.99以外を送ると400エラーになり、top_kの指定とtemperature・top_pの同時指定も400エラーになるとされています。Fable 5も移行ガイドで、Opus 5の制約をそのまま引き継ぐとされています。発表日は公式リリースノートによります。
| モデル | 発表日 | 1.0以外のtemperature |
|---|---|---|
| Claude Opus 4.7 | 2026年4月16日 | 400エラー |
| Claude Opus 4.8 | 2026年5月28日 | 400エラー |
| Claude Fable 5 | 2026年6月9日 | 400エラー |
| Claude Sonnet 5 | 2026年6月30日 | 400エラー |
| Claude Opus 5 | 2026年7月24日 | 400エラー |
| Claude Fable 5.1 | 2026年9月1日 | 400エラー |
| Claude Opus 5.5 | 2026年9月22日 | 400エラー |
| Claude Sonnet 5.5 | 2026年9月28日 | 400エラー |
| Claude Haiku 5.5 | 2026年10月7日 | 400エラー |
| Claude Opus 4.6 | 2026年2月5日 | 指定できる |
| Claude Sonnet 4.6 | 2026年2月17日 | 指定できる |
| Claude Haiku 4.5 | 2025年10月15日 | 指定できる(top_pとの同時指定は不可) |
top_pとtop_kも、既定値以外を送ると同じく400エラーの対象です。
1.0のみ許容される仕様
APIリファレンスのとおり、temperatureの既定値は1.0で、1.0を送った場合だけは受け付けられます。ただし公式の移行ガイドは、最も安全な移行方法として項目ごとリクエストから外すことを挙げています。「1.0に書き換える」より「送らない」形に直すほうが、top_p・top_kの送り忘れも含めて確実です。
Haiku 4.5の独自ルール
Haiku 4.5は新しい制約の対象外で、temperatureとtop_pは今も使えます。ただしHaiku 4.5の移行ガイドには次の条件があります。
Use only temperature OR top_p, not both. Setting both returns a 400 error on Claude Haiku 4.5.
(temperatureとtop_pはどちらか一方だけを使う。両方を指定すると、Claude Haiku 4.5では400エラーになる)
Haiku 4.5でエラーが出る場合は、2つを同時に送っていないかを確認してください。
指定なしでエラーが出る理由
「自分のコードにはtemperatureを書いていない」のに出るケースも、GitHubで複数報告されています。報告から読み取れるのは次の2つです。
ツールの既定値送信
Claudeを呼び出すツールやライブラリが、利用者の設定とは別にtemperatureを送っているケースです。icereed/paperless-gpt Issue #1003(2026年7月13日起票・claude-sonnet-5)では、投稿者は温度の環境変数を設定していないのにエラーが出続け、どこかで既定値が送られていると推測しています。
同様の報告は、Opus 4.7で「今日突然出た」とするBoltAI Issue #410(2026年5月13日)や、claude-opus-4-8とclaude-fable-5でのThe-PR-Agent Issue #2456(2026年6月18日)にもあります。
モデル判定の遅延
ツール側が新しいモデル名を認識できず、古いモデルと同じ扱いでtemperatureを付けてしまうケースです。microsoft/amplifier Issue #303(2026年6月10日起票)では、モデルの系統を判定する処理がopus・sonnet・haikuしか知らず、claude-fable-5をsonnet扱いにしていました。その結果、既定のtemperature=0.7が送られて全リクエストが失敗していました。
この型は利用者側の設定では止められないため、ツール側の修正を待つか、次の手順2で回避します。
エラー解消の3手順
自分でコードを書いている場合は手順1、ツール経由で使っている場合は手順2を見てください。手順3は、外したあとに出力の傾向を整えたい人向けです。
手順1:temperature・top_p・top_kを外す
リクエストを組み立てている箇所から、3つの項目を削除します。以下はPythonでの書き換えを示す説明用の例です。
# 修正前(説明用の例)
client.messages.create(
model="claude-opus-5",
max_tokens=4096,
temperature=0.7, # これが400エラー(SDKの版によってはTypeError)の原因
messages=[{"role": "user", "content": "..."}],
)
# 修正後(説明用の例)
client.messages.create(
model="claude-opus-5",
max_tokens=4096,
messages=[{"role": "user", "content": "..."}],
)
設定ファイルや環境変数でtemperature・top_p・top_kを渡している場合も、同じく値を消して「送らない」状態にします。
関連記事:Claude Sonnet 5の400エラーと回答が切れる原因
手順2:ツールの更新状況を確認する
設定画面から項目を消せないツールでは、次の順で確認します。
- 最新版への更新:新しいモデルに合わせた修正が出ていないかを確認します。
- 設定ファイル:画面に無くても、YAMLやJSONの設定ファイルに温度の値が残っていないかを見ます。
- GitHubのIssue:ツール名と「temperature deprecated」で検索し、対応状況を確認します。
本記事で挙げたIssueの状態は、2026年9月13日時点でamplifierとPR-Agentがクローズ済み、Cline・BoltAI・paperless-gptが未クローズでした。クローズ済みでも、手元の版に修正が入っているとは限りません。
修正がまだの場合は、制約の対象外であるClaude Opus 4.6やSonnet 4.6に一時的に切り替える方法もあります。
手順3:ばらつきはプロンプトで指示する
temperatureを外すと、出力の傾向を数値で調整できなくなります。公式はその代わりにプロンプトで指示する方法を案内しており、Opus 5.5の移行ガイドには次の一文があります。
Prompting is the recommended way to guide model behavior on Claude Opus 5.5.
(Claude Opus 5.5では、モデルの振る舞いはプロンプトで調整するのが推奨される方法です)
たとえば「事実だけを簡潔に答える」「毎回同じ形式で出力する」といった条件を、システムプロンプトに書きます。
なお、temperature=0で結果を固定しているつもりだった場合も、公式の移行ガイドは「以前のモデルでも同一の出力を保証するものではなかった」と注意しています。出力を揃えたい場合は、形式の指定をプロンプト側で行ってください。
まとめ
要点は次のとおりです。
- 原因:Opus 4.7以降のOpus・Fable系、Sonnet 5以降、Haiku 5.5では、1.0以外の
temperatureが400エラーになります。 - 対象外:Opus 4.6・Sonnet 4.6・Haiku 4.5では、今も指定できます。
- 直し方:
temperature・top_p・top_kを送らない形にします。 - ツール経由:既定値を自動で送っていることがあるので、更新とIssueを確認します。
まずは表で自分のモデルが対象かを確かめ、対象ならリクエストから3つの項目を外して再実行してください。




