BLOG.HIRO UENO.ART
← INDEX

「opus」と書いても、最新のOpusが動くとは限らない

MONET(僕が普段話しかけている、中心のAI)には、Dig(ディグ)という調べ物の仕組みがある。書き手のAIが資料を集めてまとめ、点検役のAIがその中身を確かめる。SonnetもOpusもClaudeのモデルの名前で、Opusは複雑な仕事向けのもの。書き手のモデルはそれまでSonnetが中心だったけど、その日、点検役と同じOpusに切り替えたばかりだった。

そのOpusが、最新のOpusではなかった。

設定は「opus」なのに、動いていたのは古いOpus 4.5だった

Digを1回回すと、Claudeのサブスク(月額の契約)の使用枠をどのくらい使うのか知りたくて、コーディングしてくれているClaude Code(以降Code)に聞いた。CodeがNAS(家に置いてある常時稼働のサーバー)に残っているDigの記録を調べてくれると、使われていたのはclaude-opus-4-5だった。点検役も同じだった。

切り替えたばかりのOpusは5.5じゃないの?と僕は聞き返した。Codeの答えは、5.5ではない、だった。今の最新はOpus 5.5で、動いていたのは古いOpus 4.5だった。

実はDigの中でも、Codeと同じClaude Codeという道具が動いている。NASの中の調べ物専用の箱(コンテナ)で無人で動いていて、設定にはモデルを「opus」とだけ書いてある。その箱のClaude Codeは自動では新しくならないので、Macのものより、かなり古いままになっていた。

「opus」が何を指すかは、道具のバージョンで決まる

Code「古いバージョンのClaude Codeは、『opus』『sonnet』という短い呼び名を、自分が知っている一番新しいモデルに読み替えます。バージョンが古いので、読み替え先も古いままでした」

Anthropicの説明にも同じことが書いてある。「opus」「sonnet」のような呼び名は、時間がたつと指す先が変わる。何を指すかはClaude Codeのバージョンによっても違う。固定したいなら正式な名前で書く(Claude Codeのモデル設定)。

Codeはその箱のClaude Codeを新しいバージョンにして、書き手と点検役のモデルをclaude-opus-5-5という正式な名前で指定し直した。正式な名前なら、道具のバージョンに左右されない。

どのモデルを使うかは、Anthropicの公式資料を根拠にする

最新のモデルを使えていなかったのは、かなりの問題だと思った。定期的に調べて新しくしないと、そういう所に穴が出てくるかもしれない。

それに、どのモデルを使うのが正解なのかも、僕には分からなかった。調べ物では、なるべく正確な情報が欲しい。でも、無駄に高性能なモデルは要らない。どれが合うかを確かめるには実験が要るけど、それはやりながらでいい。まずは最初の組み合わせを決めたかった。そこで知りたかったのが、Anthropic自身はどう使い分けてほしいと考えているのか。Codeは、自分のこともAnthropicのことも、いつもよく知らない。だから、公式の資料を調べてもらった。

分かったのはこういうこと。

もう1つ分かったのは、Claude CodeでOpus 5.5を使うと、effortは何も指定しなければ中くらい(medium)になること(Claude Codeのモデル設定)。Digでは何も指定していなかった。そこで正確さを優先して、Codeが書き手と点検役のeffortを強め(high)にした。

どのAIがどのモデルで動いているかを、根拠と一緒に1つの表にした

同じ穴は、ほかにも見つかった。Typewriter(タイプライター。代筆アプリ)も、中のClaude Codeが同じ古いバージョンのままで、返信の下書きをSonnet 4.5で書いていた。こちらはあとで、Sonnetのまま、Codeが最新のSonnet 5.5を正式な名前で指定して、effortもhighにした。

ここで僕は、Codeに頼みたいことを書いて送った。新しいモデルが出た時、新しいアプリを作る時、新しい役目のAIを入れる時に、どの作業にどのモデルが合っているかを公式の情報で必ず確かめる。そのうえで、合ったモデルとeffortを設定する。月1回の点検で、それができているかを見る。それと、点検する前に、そもそも何をもって「合っている」とするかの物差しが要るんじゃないか、とも書いた。

Codeはまず、どのAIの役目が今どのモデルで動いているかを洗い出して、1つの表にした。役目ごとに、モデル、effort、根拠が書いてある。物差しには、この根拠の欄をそのまま使った。根拠が次のどれかで、合っているかを見る。

表には、モデル名の書き方の決まりも入れた。Claude Codeのバージョンを固定しているNASの箱では、モデルを正式な名前で書く。Macのように道具が自動で新しくなる所では、短い呼び名のままでいい。そこで正式な名前にすると、今度は新しいモデルが出ても古いまま止まってしまう。

途中で僕も、MONETもそもそも古いんじゃないか、とCodeに送ったけど、Codeは洗い出しの中でもう見つけていた。MONETはモデルの名前をコードに直接書いていて、そこが一世代前のSonnet 5とOpus 5のままだった。

新しいモデルは週1で見張り、表と実際の設定のずれは月1回探す

表を作っても、新しいモデルが出れば、また今回と同じことになる。そこで、見張りと点検を足した。

まず、週1回の「モデルの見張り」。毎週水曜の朝に無人で動いて、Anthropicのモデルの公式ページと、Claude Codeの最新バージョンを読み、表と比べる。変化があれば、何が変わったか、どの役目に響くか、どう変えるのがいいかを書いて、Handler(ハンドラー。タスクとスケジュール管理アプリ)にタスクを作る。設定を勝手に変えることはしない。

次に、月1回の点検。前からある点検に、表と実際の設定が合っているかを突き合わせる項目を足した。

それと、憲法(Codeが毎回最初に読む決まりのファイル)にも1行足した。AIの役目を足す時やモデルを変える時は、先に表に書き足して、公式資料を見てモデルを選ぶ。

見張りを試しに1回動かしてみると、モデルの変化は無かった。その代わり、Codeがその日に作った表の誤りを1つ見つけてきた。Sonnet 5.5のeffortの初期値を、Claude Codeではmediumなのに、highと書いていた。

見張りの報告には、モデルの提供終了の話も入っていた。そこで、提供終了を知らせる公式ページをCodeに確かめてもらった(Model deprecations)。Typewriterが使っていたSonnet 4.5は、2026年11月30日で使えなくなると予告が出ていた。Digが使っていたOpus 4.5も、早ければ11月24日に終わる。どちらも、この日のうちに移し終えていた。MONETのSonnet 5とOpus 5はまだ当分使えるけど、MONETで僕が切り替えて使えるモデルは全部最新にしておきたかったので、その夜のうちにSonnet 5.5とOpus 5.5に移してもらった。

設定に「opus」と書いてあっても、それが今どのOpusなのかは、書いた側には見えていなかった。今は表を開けば、どの役目がどのモデルで、何を根拠に動いているかが分かる。