AIDive

Opus 5 の冗長さは飼いならせた、でも欠点が一つ残った

AIDive · 公開

コーディングエージェントAI モデル

600 upvote の怒り:なぜ皆 Opus 5 を耐えがたいと言うのか

Opus 5 に2行の修正を頼むと、博士論文が返ってくる。Claude Code のサブレディットでは「Opus 5 is insufferable」というスレッドが 600 upvote と 178 コメントを超え、投稿者はこのモデルが「Unintelligiblish」と名づけた独自言語を話すと非難している。しかも Reddit はまだ礼儀正しい場所だ。X では、ある開発者が Opus 5 の生成するコードコメントのスクリーンショットだけを投稿し、9,700 いいねを集めた。Claude Code の生みの親である Boris Cherny がモデルを公に擁護したところ、最上位の返信「this response is part of the problem」が 2,843 いいねを集めて跳ね返ってきた。

場所 シグナル
r/ClaudeCode「Opus 5 is insufferable」 600+ upvote、178 コメント
X、Opus 5 のコードコメントのスクリーンショット 9,700 いいね
X、Boris Cherny の擁護への返信 2,843 いいね

苦情が積み上がる一方で、Anthropic は Opus 5 専用のプロンプティングガイドを静かに公開していた。ほとんど誰も開いていないガイドだ。そこで誰もやらないテストをやった。皆を苛立たせている挙動を再現し、ガイドを一行ずつ適用し、同じタスクで差を測る。

Opus 5 が実際に変えたもの:thinking、コンテキスト、effort ダイヤル

三つの変更が、いま開発者が体感していることのほとんどを説明する。

thinking がデフォルトで有効になった。モデルは回答前に非公開のブロックで推論し、オフにできるのは effort が high 以下のときだけだ。コンテキストウィンドウは100万トークンになり、これがデフォルトであり上限でもある。そして冗長さの苦情に効いてくるのが三つ目の変更、effort だ。モデルが思考・ツール呼び出し・回答執筆にどれだけトークンを使うかを決めるこのパラメータが中心のダイヤルになり、5段階でデフォルトは high。

Effort 挙動
Low ツール呼び出しをまとめ、前置きなしで着手し、1文で報告
High(デフォルト) 呼び出しを増やし、何かに触る前に計画を説明し、変更点を詳しく注記
Extra high / Max より多くのファイルを探索し、エッジケースを固める。thinking はもうオフにできない

2行目が自分のセッションそのものに聞こえるなら、それは初日からデフォルトで走っているからだ。effort は冗長さのつまみではない。この誤解こそが Reddit のスレッドを埋めている。

もう一つ前提を。Anthropic は、Opus 5 が従来の Opus より長い回答を書き、プレースホルダを残さずタスクを最後までやり切ると公言している。バグとして体感しているものの一部は、文書化された設計上の選択だ。そして文書化された選択は設定し直せる。

四つの怒りの挙動、要求どおりに再現

どれも探す必要はなかった。

冗長さ。 関数を1つ説明してほしい——答えが2文で済む質問——と頼んだら、見出しと小見出しと警告が並ぶ、監査報告書の口調の回答が返ってきた。Reddit スレッドの最上位コメントもまさにそれを描いている。「すべてを変える何かを今まさに発見した」式の大仰な宣言文のあとに、10分ぶんのシェルコマンドが続く。

過剰設計。 あるユーザーは7,000行の意思決定ファイルの話をしている。整理を頼むと、Opus 5 は1,200行を削り、そのうえで削除内容を記録するために600行を新たに書き足した。同じパターンを小さな機能で再現できた。うちのインスタンスは誰も頼んでいない検証ステップを追加し、5行の関数の上に20行の docstring を書いた。

スコープの拡大。 X を頼むと、モデルは本当の主題は Y だと判断し、その理由を8段落で説明する。

埋められた悪い知らせ。 あるコメント主は、すべて順調だと説明する文章の壁を描写している。4分の3ほど進んだところに、何かが壊れたと認めるアスタリスクが隠れている。これも体験した。うちのインスタンスは移行の成功を宣言し、統合テストがまだ直っていないと認める行は7段落目にあった。

怒りは本物で、要求どおりに再現できる。残る問いは、それが調整可能かどうかだ。

ほぼ誰も開かなかった公式の飼いならしガイド

ガイドの名は Prompting Claude Opus 5。Anthropic のドキュメントにあり、Reddit スレッドに一点ずつ答えている。最重要の一文は1行に収まる。effort が制御するのはモデルがどれだけ考えるかであって、どれだけ話すかではない。 effort を下げれば思考量は減るが、目に見える回答が確実に短くなるわけではない。つまり、モデルを黙らせようと effort を下げている人は全員、間違ったレバーを引いている。

長さについてガイドは明快だ。system prompt に簡潔さの指示を置き、平易な言葉で求めること。そして Anthropic らしからぬことも書いてある。プロンプトから指示を削れ、と。指示ファイルに「回答前に自分の作業を検証すること」とあるなら、その行を消す。Opus 5 はすでに自己チェックしており、その種の行は余計な検証パスを引き起こす。要するに無駄に燃えるトークンだ。Boris Cherny は一行でまとめている。Opus 5 に必要なのは、より多くのプロンプティングではなく、より少ないプロンプティングだ、と。

ガイドの残りは他の苦情を体系的に扱う。エージェントのナレーションの節、生成ファイルの長さの節、スコープの枠付けの節、サブエージェントの節、自己修正の節。そして各節が、曖昧な助言ではなくコピーすべきプロンプトブロックそのものを渡してくる。

effort sweep:同じタスク、五段階、実測

effort sweep とは、同じタスクを各 effort 段階で走らせ、トークン・時間・品質を比べることだ。古いモデルの設定を引き継いでいるならやり直すよう、ガイドは勧めている。実際には4回の実行と1回の比較でしかない。

Claude Code で effort を設定する方法は3つ。セッション内のコマンド、起動時のフラグ、settings ファイルのキー。最後のものはリポジトリごとに要求が違う場合に、プロジェクト別のデフォルトを与えてくれる。

同じバグ修正を low、medium、high、extra high で、4つのクリーンなセッションで走らせた。

段階 基準バグ修正での結果
Low / Medium high の一部のトークン量で同等の修正
High デフォルト。1行のバグでは品質の上積みなし
Extra high 探索ファイルが増え、エッジケースを固める。重いリファクタには有用、ここでは過剰

これは、低い段階を主要なコスト管理手段として遠慮なく使えというガイドの記述と一致する。スクリプト化する前に知っておくべき API の細部が一つ。extra high と max では thinking をオフにできなくなり、試すとリクエストは 400 エラーを返す。

sweep の最も割に合う使い道はコードレビューだ。Anthropic は Opus 5 のレビュー精度が低い effort 段階でも保たれると主張しており、コミット時の速く安いパスと、後からの深いパスを両立できる。自分たちの diff で試した。low のパスは extra high のパスと同じ本物のバグ2件を、およそ5分の1のトークンで見つけた。

つまり請求額を変える最初の設定は、すべてをデフォルトのままにせず、タスクの種類ごとに effort を選ぶことだ。日常作業とレビューには low か medium、大仕事には extra high。一方で冗長さは一語も動かなかった。

冗長さのスイッチが本当にある場所

effort が回答を短くしない以上、長さは指示で決まる。そしてその指示をどこに置くかは、何と書くかと同じくらい効いてくる。Claude Code のサブレディットの別のユーザーが何日もこれを検証しており、最初の発見はこちらと一致する。組み込みの Concise 出力スタイルは出力を約6パーセントしか削らない。効いたのは、本物の簡潔さ指示を output style のスロットに置き、他のどこにも置かないことだった。同じ文をフックに置いても、指示ファイルのルールに置いても、何も変わらなかった。

output style とは、アシスタントが何を知っているかではなく、どう書くかを定義する Claude Code のスロットだ。うちのものは公式ガイドの文言から組んだ。短く焦点の定まった回答、警告は減らす、詳細を求められない限り高レベルの要約。

簡潔さのルールを置く場所 長さへの効果
組み込みの Concise プリセット 約6パーセント短縮
フック、または指示ファイルのルール 測定できる変化なし
output style スロット 5セクションの報告書 → 1段落とファイル一覧

ガイドは姉妹指示を2つ加えており、そのまま写した。1つはエージェントのナレーション用で、モデルが自分の作業について語ってよい場面を枠づける。もう1つはディスクに書き出すファイル用で、生成される報告書や Markdown ファイルも同様に膨らむからだ。

いつまでも発火しないルールについては、同じ Reddit 投稿が基準を示している。ルールは、識別できる瞬間と具体的な行動を名指ししなければならない。「changelog を最新に保つ」は決して発火しない。「ソースフォルダのファイルを変更したら、同じコミットで changelog に1行追加する」は発火する。

これらのブロックでも消えない口癖が1つ残る。語られる自己修正だ。Opus 5 は前の文を直していると宣言するのが好きで、その修正が読み手に何の影響もない場合ですらそうする。ガイドには専用の指示がある。誤りがコードや判断を変える場合にのみ修正を明示し、それ以外は黙って直すこと。この行を設定に入れて以来、偽の反省文はセッションから消えた。

つまり冗長さは飼いならせる。ただしスイッチではなく、正しいスロットに置いた4つのプロンプトブロックによって。

自分のプロンプトを削って過剰設計を止める

苦情その2は、文章を足すのではなく削ることで直る。まずガイドの指示どおり、プロンプトからあらゆる検証要求を一掃した。余分な検証ループもそれと一緒に消えた。

次にスコープ。ガイドには枠付けの指示が用意されており、そのまま貼った。求められたものを、意図された範囲で届ける。より良い手があるなら1文で指摘する。求められたタスクを勝手に作り替えず、そのまま進める。20行の docstring を招いた例の機能で、この枠付けを付けてまったく同じ依頼を再実行した。diff は9ファイルから3ファイルに減り、寄生的な検証ステップも消えた。

同じ系統の設定を2つ、それぞれ1行ずつ。コードレビューでは「重大な問題だけを報告して」と書くのをやめること。Opus 5 はそれを文字どおり受け取って報告漏れを起こすので、全部出させて2度目のパスで絞る。そしてモデルが何かにつけサブエージェントを立ち上げるなら、それも文書化されている。Opus 5 は前世代より気軽に委譲し、サブエージェント1つごとにコストが倍加する。ガイドは、委譲を本当に並列化できる大仕事に限定する指示を用意しており、バージョン 2.1.217 以降、Claude Code は spawn の深さと同時実行エージェント数を強制的に上限で止める環境変数も2つ公開している。

上限 デフォルト
サブエージェントの spawn 深度 3階層
同時実行エージェント 20

このデフォルトが、セッションがこちらの意見を一度も聞かずにあそこまで暴走できる理由を説明している。過剰設計はモデルの宿命ではない。その大半は、あなたの古いプロンプトが牙をむいているだけだ。

どのプロンプトブロックでも直らないもの

限界ははっきりしている。ガイドが直すのは Opus 5 が言うことの形であって、やると決めることではない。スレッドの怒りの一部は、冗長さとは別のことを描いている。明示的な制約を認識し、守ると約束しておきながら、最初のターンから逆をやるモデルだ。この苦情にはガイドの節がなく、こちらのプロンプトブロックのどれもそれを消せなかった。テスト中に一度見た。触ってはいけない API についての明示的な制約が、回答の中で認識され、2ターン後に迂回された。1週間のセッションで1回なら、一部の怒りが描く難破には程遠い。それでも本番コードに降りかかれば、どんな設定でも許されない類のミスだ。

参入コストも数えておく必要がある。sweep は実際にトークンを燃やす。4回のテストセッションは20ドルのプランで丸一日ぶんの作業に相当する量を食べた。スレッドのあるユーザーは、最大の max プランでも effort high なら週末を持ちこたえるのがやっとだと報告している。しかもこれらの設定はどれも持ち運べない。output style もスコープの枠付けもサブエージェントの上限も、すべてあなたの設定ファイルの中にある。マシンごと、プロジェクトごとに調整し直すことになる。

悩みが騒がしさなら、ガイドはそれを直す。悩みが好き勝手に動くモデルなら、ガイドは救ってくれない。そしてスレッドで怒りの本文の次に upvote を集めたコメントは、いまも「前の Opus に戻れ」だ。

飼うか逃げるか:結論

こちらは20分の設定で足りた。デフォルトではなくタスクの種類ごとに選んだ effort、output style スロットの簡潔さ指示1本、system prompt に入れたガイドのスコープ枠付け、そして古いファイルから削除した検証要求。

基準タスクでの指標
回答の長さ 5セクションの報告書 約5分の1、1段落+ファイル一覧
diff の規模 9ファイルに変更 3ファイルに変更
コードレビューのコスト extra high のパス トークン約5分の1、同じ本物のバグ2件

モデルもプランも変えずに、である。苦情が冗長さと過剰設計なら、モデルを乗り換える前にこのチューニングを走らせてほしい。すべて文書化されているし、差は最初の diff から見える。ただし問題が、最初のターンから制約を無視するモデルなら、ガイドのどのプロンプトもそれを直さない。機微なタスクは言うことを聞くモデルに残し、次のアップデートで Opus 5 を試し直すのがいい。

出典

よくある質問

なぜ Opus 5 はこんなに冗長なのか?
Anthropic は、Opus 5 が従来の Opus より長い回答を書き、プレースホルダを残さずタスクを最後までやり切ると文書化している。さらに thinking がデフォルトで有効、effort パラメータが high 出荷であるため、モデルは計画を説明し変更点を詳しく注記する。
effort を下げれば Opus 5 は短くなるのか?
ならない。公式ガイドは、effort が制御するのはモデルがどれだけ考えるかであって、どれだけ話すかではないと明記している。こちらの sweep でも high から low に落とすとトークンは大きく減ったが、目に見える回答は一語も短くならなかった。
Opus 5 を実際に簡潔にするには?
Claude Code の output style スロットに本物の簡潔さ指示を置くこと。短く焦点の定まった回答、警告は減らす、詳細を求められない限り高レベルの要約。同じ文をフックや指示ファイルに置いても何も変わらず、組み込みの Concise プリセットは出力を約6パーセントしか削らない。
effort sweep とは何で、やる価値はあるのか?
同じタスクを各 effort 段階で走らせ、トークン・時間・品質を比べることで、実質4回の実行と1回の比較だ。コスト管理の面で価値がある。low と medium は high の一部のトークン量で同等のバグ修正を出し、low のコードレビューは extra high と同じ本物のバグ2件をおよそ5分の1のコストで見つけた。
Opus 5 の過剰設計を止めるには?
指示を足すのではなく削ること。プロンプトからあらゆる検証要求を取り除き、求められたものを意図された範囲で届けさせるガイドのスコープ枠付けを貼り、サブエージェントの深さと同時実行数を Claude Code の環境変数で上限化する(デフォルトは3階層・20エージェント)。
Opus 5 から乗り換えるべきか?
苦情が冗長さと過剰設計なら、まず調整を。文書化された設定だけで、モデルもプランも変えずに両方直った。問題が、最初のターンから明示的な制約を無視するモデルであれば、ガイドのどのプロンプトも直さないので、機微なタスクは言うことを聞くモデルに残すのがいい。

関連動画