今回のアップデートで何が変わったのか
Claude Codeには「コンパクション」という仕組みがあります。会話が長くなってコンテキストウィンドウ(AIが一度に覚えていられる情報量)がいっぱいに近づくと、自動で会話を要約して空きを作ってくれる機能です。この自動要約が発動する目安になっているのが、使っているモデルの「コンテキストウィンドウの大きさ」です。
ところが、Claude Codeがまだ知らない新しいモデルIDを使った場合、これまでは「このモデルのコンテキストウィンドウはどれくらいか」が正しく判断できず、想定よりも会話が膨らみ続けてしまうことがありました。いわば、定員が何人か分からないエレベーターに、とりあえず乗れるだけ乗せ続けてしまっていたようなイメージです。
v2.1.223からは、この挙動が変わりました。見覚えのないモデルIDを使っているときは、Claude Codeが仮に想定しているコンテキストウィンドウのサイズの範囲内に収まるよう、早めにコンパクションを働かせるようになったのです。定員が分からないなら、安全側に倒して「このくらいだろう」という人数を超えないように制御する、というわけです。
なぜこの変更が必要だったのか
コンテキストウィンドウの上限を超えてしまうと、エラーになったり、応答の質が落ちたりする可能性があります。特に新しいモデルが登場した直後は、Claude Code側の対応が追いついておらず、モデルIDを「未知」として扱ってしまう期間がどうしても発生します。その間、会話がどんどん膨らんでしまうのは事故のもとです。
今回の変更は、そういった「未知のモデルだからこそ危ない」状況に対して、あらかじめ安全マージンを取っておく対応だと理解するとわかりやすいと思います。
元の挙動に戻したい場合
ただし、この「早めに区切る」挙動が常に望ましいとは限りません。例えば、実際にはもっと大きなコンテキストウィンドウを持つモデルを使っているのに、Claude Codeがそれを認識していないだけ、というケースもあり得ます。そうした場合に、以前のように制限をかけずに会話を続けたいなら、環境変数 CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 を設定することで、以前の挙動に戻せます。
普段からモデルピッカーで標準的なモデルだけを使っている人にとっては、あまり意識する場面のないアップデートかもしれません。ただ、カスタムのモデル設定や、リリース直後の新モデルを試している人にとっては、地味だけれど地雷を避けてくれる変更だと言えます。
このページは役に立ちましたか?