Anthropic の release notes を朝チェックしたら、claude-opus-4-1-20250805 の deprecation アナウンスが出ていた。retirement は 2026 年 8 月 5 日。つまり今日から 2 ヶ月ない。
正直、ちょっとヒヤッとした。自分のサイドプロジェクトで model ID をハードコードしてる箇所が 3 ファイルくらいある。production に近い環境で動かしてるやつもあって、今すぐ直しに行かないとそのうち詰む。
手癖で以下を叩いた。
案の定、config ファイルと SDK 呼び出し部分に散らばってた。env var に逃がしてる箇所はセーフだったけど、直書きしてた 2 箇所はアウト。こういうとき「env var に抽象化しとけ」って過去の自分に言いたくなる。
移行先は Anthropic が推奨している Opus 4.8 (claude-opus-4-8)。5 月 28 日にリリースされたやつで、context window が API・Bedrock・Vertex AI でデフォルト 1M token になった。max output も 128k token。Opus 4.1 と同じツールセットが使えるという話なので、ドロップイン的に model ID を差し替えるだけで大半は動くはず。
ただ一個ハマりポイントを確認した。Opus 4.8 は temperature / top_p / top_k を非デフォルト値にすると 400 エラーになる。Opus 4.7 と同じ挙動。自分のコードは creative task 用に temperature=0.8 を渡してる箇所があって、そこは別途修正が要る。
ここが個人開発者として一番気になるところ。Opus 4.8 はコストどうなのかというと、release notes を読む限りいくつか節約できる改善が入ってる。
一つは adaptive thinking。effort が同じ level でも Opus 4.7 より思考トークンを無駄に消費しない設計になったらしい。「wasted thinking tokens を減らす」という表現がそのまま書いてあって、これはえぐい改善だと思う。thinking 有効にすると一回の呼び出しでトークンが爆発するのを体感してたから、ここが自動調整されるのはありがたい。
もう一つは prompt caching の最低キャッシュ長が 1,024 token に下がったこと。Opus 4.7 より低い閾値でキャッシュが効くようになった。長い system prompt を使い回すアーキテクチャにしてるなら、これだけでコストがかなり変わってくる。自分のプロジェクトは system prompt が 3,000 token 超えてるので、ここの恩恵は普通に受けられそうだ。
あと June 2 の更新で「refusal が出てトークンを何も生成しなかった場合は課金しない」という変更も入ってた。地味だけど、バリデーション目的で弾かれることが多いユースケースなら気持ち効いてくる。
ドロップイン換装で終わらせるか、新機能を取り込むかで悩んでる。
mid-conversation system messages は正直気になってる。長いセッションの途中で role: "system" を差し込めるようになった機能で、instruction が変わっても prompt cache のヒットを維持できるという話。今の設計はセッション初頭に全部流し込む形なので、ここを活かせるかどうかはアーキテクチャ見直しが必要になりそう。
優先度としては、
という感じ。retirement まで 2 ヶ月はあるけど、ギリギリになってバタバタするのが一番嫌なタイプなので今週中に最低限の migration は終わらせたい。
彼女に「また週末コード書いてるの」って言われそうだけど、これは技術的負債の返済なので仕方ない。retirement 当日に API が死んで朝から障害対応、みたいな未来は避けたい。
正直、ちょっとヒヤッとした。自分のサイドプロジェクトで model ID をハードコードしてる箇所が 3 ファイルくらいある。production に近い環境で動かしてるやつもあって、今すぐ直しに行かないとそのうち詰む。
とりあえず影響範囲を grep する
手癖で以下を叩いた。
grep -r "claude-opus-4-1" . --include="*.ts" --include="*.py" --include="*.yaml"案の定、config ファイルと SDK 呼び出し部分に散らばってた。env var に逃がしてる箇所はセーフだったけど、直書きしてた 2 箇所はアウト。こういうとき「env var に抽象化しとけ」って過去の自分に言いたくなる。
移行先は Anthropic が推奨している Opus 4.8 (claude-opus-4-8)。5 月 28 日にリリースされたやつで、context window が API・Bedrock・Vertex AI でデフォルト 1M token になった。max output も 128k token。Opus 4.1 と同じツールセットが使えるという話なので、ドロップイン的に model ID を差し替えるだけで大半は動くはず。
ただ一個ハマりポイントを確認した。Opus 4.8 は temperature / top_p / top_k を非デフォルト値にすると 400 エラーになる。Opus 4.7 と同じ挙動。自分のコードは creative task 用に temperature=0.8 を渡してる箇所があって、そこは別途修正が要る。
# Before: Opus 4.1 で動いてたやつ
client.messages.create(
model="claude-opus-4-1-20250805",
temperature=0.8, # Opus 4.8 では 400 になる
messages=[...]
)
# After: temperature は adaptive thinking に任せる方向で消す
client.messages.create(
model="claude-opus-4-8",
messages=[...]
)コスト観点から見た Opus 4.8 の実用性
ここが個人開発者として一番気になるところ。Opus 4.8 はコストどうなのかというと、release notes を読む限りいくつか節約できる改善が入ってる。
一つは adaptive thinking。effort が同じ level でも Opus 4.7 より思考トークンを無駄に消費しない設計になったらしい。「wasted thinking tokens を減らす」という表現がそのまま書いてあって、これはえぐい改善だと思う。thinking 有効にすると一回の呼び出しでトークンが爆発するのを体感してたから、ここが自動調整されるのはありがたい。
もう一つは prompt caching の最低キャッシュ長が 1,024 token に下がったこと。Opus 4.7 より低い閾値でキャッシュが効くようになった。長い system prompt を使い回すアーキテクチャにしてるなら、これだけでコストがかなり変わってくる。自分のプロジェクトは system prompt が 3,000 token 超えてるので、ここの恩恵は普通に受けられそうだ。
あと June 2 の更新で「refusal が出てトークンを何も生成しなかった場合は課金しない」という変更も入ってた。地味だけど、バリデーション目的で弾かれることが多いユースケースなら気持ち効いてくる。
Opus 4.8 で増えた機能、使い倒すか整理するか
ドロップイン換装で終わらせるか、新機能を取り込むかで悩んでる。
mid-conversation system messages は正直気になってる。長いセッションの途中で role: "system" を差し込めるようになった機能で、instruction が変わっても prompt cache のヒットを維持できるという話。今の設計はセッション初頭に全部流し込む形なので、ここを活かせるかどうかはアーキテクチャ見直しが必要になりそう。
優先度としては、
- model ID を env var に逃がして Opus 4.8 に差し替え (今週中)
- temperature を渡してる箇所を削除して動作確認
- prompt caching の閾値が下がった恩恵を実測して確認
- mid-conversation system messages は次スプリントで検討
という感じ。retirement まで 2 ヶ月はあるけど、ギリギリになってバタバタするのが一番嫌なタイプなので今週中に最低限の migration は終わらせたい。
彼女に「また週末コード書いてるの」って言われそうだけど、これは技術的負債の返済なので仕方ない。retirement 当日に API が死んで朝から障害対応、みたいな未来は避けたい。