← AIバイブコーディングTips 一覧へ Claude Platform / Cost & Performance

モデルを下げずにコストを下げる

「安くする」は「性能を落とす」と同義だと思っていた。だがAnthropic公式ブログは、モデルのランクを下げずにコストだけ削る3つのレバー——プロンプトキャッシュ・指示文の棚卸し・effortの較正——を、実測のコスト削減率とセットで示していた。

この記事で手に入るもの

プロンプトキャッシュを静かに壊す5つのNG行動と直し方、frontierモデルへ移行するときに消すべき6つの"アンチパターン"、effortを較正する具体的な判断基準——それぞれ公式が公開した実測値つきで持ち帰れる。

01 — 前提

「コストと性能はトレードオフ」という前提を崩す

Anthropicが2026年9月8日付で公開した記事の主張は明快だった。Claude Platformを使う多くのアプリケーションは、性能を落とさずにコストを削減できる、という。

効くレバーは3つ。①プロンプトキャッシュのヒット率を最大化する②frontierモデルへ移行する際に、古い指示文に積もった"アンチパターン"を取り除く③タスクの形に合わせてeffort(思考の強さ)を較正する。3つとも「モデルのランクを下げる」以外の手段である点が肝で、以前このブログで書いた「読む仕事」に高いモデルを使わないという判断(タスクの性質でモデルの単価を変える)とは別の軸の話になる。あちらが「どのモデルを使うか」なら、今回は「同じモデルの中で、どう無駄を削るか」だ。


02 — レバー1

プロンプトキャッシュは"壊れやすい"——何がヒット率を落とすか

プロンプトキャッシュは、プロンプトの処理結果(KVキャッシュ)を保存し、同じプレフィックスで始まるリクエストは再計算せず読み込むだけで済ませる仕組み。読み込みは通常価格の一部で課金される。ただし条件は厳しい——モデルに固定され、バイト単位で完全一致し、有効期限(TTL)がある。

01

会話の途中でeffortやthinkingの設定を変えない

これらの設定は本文より前にプロンプトへ描画されるため、キャッシュされたプレフィックスの一部になっている。途中で変えるとそこから先のキャッシュが崩れる(Opus 5とFable 5.1だけは、会話の途中でeffortを変えてもキャッシュを壊さない例外)。

02

揮発する値をプレフィックスに置かない・ツール定義を並べ替えない

システムプロンプトに埋め込んだタイムスタンプやIDのような、呼び出しごとに変わる値はキャッシュを直接壊す。Claude Messages APIはツール定義を先頭に固定順で組み立てるため、定義の変更もキャッシュミスに直結する。

03

サブエージェント・分岐・TTL超過に注意する

親のキャッシュを引き継げるのは、分岐後のプレフィックスがバイト単位で同一・同じモデル・同じeffortのときだけ。同期的なツール呼び出しやサブエージェントがTTLより長くブロックすると、結果が返ってくる頃にはキャッシュが切れている。次のターンはキャッシュを書き直すことになり、安い読み込み価格ではなく通常入力価格の1.25倍(1時間キャッシュなら2倍)を払う羽目になる。

ここが核心。ヒット率はClaude Consoleのキャッシュ診断で監視でき、ミスが起きた場合は2つの連続リクエストのどこでプレフィックスが分岐したかまで特定できる。「なんとなく速い/遅い」で終わらせず、原因を機械的に追える設計になっている。

直し方の実務Tipsも具体的だった:使用頻度の低いツールは defer_loading でプレフィックスの外に逃がす/システムプロンプトを直接編集せず会話途中のメッセージとして指示を追加する/安定した部分(ツール定義・システムプロンプト)を先頭、変化する会話を末尾に置く/モデルやeffortを変えるならcompactionなどどうせキャッシュが壊れるタイミングに合わせる/セッション開始時に max_tokens: 0 で明示的なブレークポイントを送りキャッシュを温めておく。


03 — レバー2

古いモデル向けの"念押し"が、新しいモデルではコストになる

プロンプトやCLAUDE.md、スキルの指示文は、モデルの弱点を補うための注記を積み重ねながら育っていく。だが新しいモデルの能力に対して、その注記自体が古くなっていることには気づきにくい。公式が名指しした6つの"アンチパターン"は次の通り。

✓
検証儀式「必ず二重確認しろ」「もう一度検証してから答えろ」——frontierモデルは字義通りに実行し、トークンを浪費する。
✓
徹底性・強調の煽り文句「最大限に徹底的にやれ」「重要:絶対に必ず…」——冗長な出力や不要なツール呼び出しにつながる。
✓
強制手順・スクラッチパッド指定「スクラッチパッドで段階的に考えろ」——frontierモデル内蔵の思考と衝突し、二重の手間になる。
✓
古い少数例(few-shot)旧モデルの失敗パターンに合わせて調整された例が、不要な長い推論を模倣させる。
✓
矛盾したルール「必ず規定内で返金する」と「必ずエスカレーションなしに返金するな」が同居——frontierモデルほど指示に忠実なぶん、矛盾をそのまま律儀に守ろうとして挙動が崩れる。
✓
古い設定手動の思考予算(thinking budget)など旧世代向けの設定が、新モデルでは受け付けられないことがある。

これを検出するために、公式はclaude-apiスキルに/claude-api prompt-auditというコマンドを追加した。作業ディレクトリ内のプロンプト・スキル・ツール定義(CLAUDE.mdも含む)をまとめて監査する。

実証実験も具体的だ。Opus 4.8からOpus 5への移行を想定し、カスタマーサポートのベンチマークで、クリーンなプロンプトに上記6種のアンチパターンを1つずつ仕込んだ「旧式プロンプト」を6本用意。①Opus 4.8のまま②モデルIDだけOpus 5に変更③さらにprompt-auditを1回かけたOpus 5——の3パターンで比較した。

ここが核心。prompt-auditでアンチパターンを取り除いた結果、平均でコスト-14.6%・精度+5.3%。理由は3つ具体的に判明している——①廃止済みの思考設定がルーティングのリクエストをAPIごと拒否させていた②矛盾した返金ルールのせいで、Opus 5が本来払うべき返金4件を"確認"のため保留していた③手動スクラッチパッドがOpus 5組み込みの思考と衝突し、3件のチケットでツール呼び出しを推論の中に書いたまま実行しなかった。


04 — レバー3

「effortを上げれば良くなる」は片道切符ではない

effortはClaudeに「どれだけ粘るか」を伝えるパラメータ。低effortは早く結論を出し、高effortは検証や別解の検討に時間をかける。だがコストと性能の関係はタスクごとに曲線の形がまったく違う、と公式は数値で示す。

Fable 5・FrontierCode Diamond(最難関50タスク):低effortで11.5%・$5.35/タスク、最大effortで30.9%・$19.00/タスク。effortを最大まで上げるとスコアは約2.7倍(+19pt)伸びるが、コストは約3.5倍になる。

Fable 5.1・Humanity's Last Exam(ツールなし):低effortで約53%・$0.30/問、最大effortで約61%・$2.23/問。最後の一段はスコア+0.5ptに対してコスト+46%——ベンチマークのノイズの範囲内で、実質「伸びしろゼロにお金を払う」形になる。

effortの較正は両方向に外れうる。高ければ良いと思い込むと、必要以上に長く迷い、コスト・レイテンシが増えるうえ回答の質が落ちることさえある(deliberationは"まだ探す余地がある"間だけ効く)。逆に低effortに偏らせすぎると、十分な証拠が揃う前に止まってしまう。ツール呼び出しが減り、3番目でなく最初の検索結果で答えてしまい、本来なら自分でやるはずのチェックまで飛ばす。

01

より強いモデルを低effortで試す

CursorBench 3.2で、Fable 5.1の低effortはFable 5の最大effortと同等の性能を1/3のコストで達成した。安さの理由は2つ——低effortでは1タスクあたりの処理量が減ること、Fable 5.1のキャッシュ読み取り単価が$0.25/百万トークン(Fable 5は$1.00/百万トークン)であること。Fable 5と同じ価格だとしても、Fable 5.1の低effortは約40%安い計算になる。

02

タスクの"形"を理解する

effortを何段階かに振って評価を回し、コスト-性能の曲線が平坦なら、そのタスクは思考量に律速されていない——つまりeffortを上げても意味がない、と判定できる。

03

hillclimbで自動探索する

/claude-api hillclimbは、評価セットをtrain/testに分け、失敗したtrainの例を読んで設定変更を提案する自動探索。カスタマーサポートのベンチマークで、Opus 4.8の既定(高)effortから開始し、まずOpus 5の低effort+prompt-auditを試したところ、train精度98.9%でOpus 4.8の基準を上回りつつコストは1チケット2.6セントまで下がった。さらにSonnet 5の低effortに下げると1セントまで安くなるが精度は88.9%に低下——そこでルーティングルールと返金上限の相互参照をプロンプトへ追加し、コストを据え置いたまま98.9%まで回復させた。探索が一度も見ていない保留14チケットでの最終評価は精度90.5%(元の設定は78.6%)、コストは約1/5だった。


05 — 自分の運用に当てはめる

3レバーのうち、今の運用にすぐ刺さるのは1本半

①のプロンプトキャッシュ制御は、Claude APIを直接叩くアプリケーション向けの話で、対話型のClaude Codeをそのまま使っている今の運用には直接は乗らない——ブレークポイントやTTLを自分で操作する場面がそもそも無いからだ。

一方、②の「指示文のアンチパターンを消す」は、CLAUDE.md/AGENTS.mdの運用そのものに当てはまる。実際にこの記事を書くにあたり、6つのアンチパターンの物差しでAGENTS.mdを読み返してみたが、公式が問題視するような「検証儀式」「矛盾したルール」「強制スクラッチパッド」は見当たらなかった——見つかったのは「必ず承認を得る」「必ずjournalに追記する」といった運用上の安全策で、公式が指す"冗長なトークン消費の温床"とは性質が違う。とはいえ、"念のため"の一文を積み重ねがちなCLAUDE.md運用者ほど、一度この物差しで棚卸しする価値はありそうだ。

③のeffort較正は、「読む仕事」に高いモデルを使わないで決めた「探す・数える・集める=安いモデル/書く・直す・判断する=既定モデル」という静的な振り分けの、より細かい版として読める。公式が示す「モデルを下げるより先に低effortを試す」という優先順位は、こちらの「モデルのランクを落とすより先に生産量を絞る」というルールと同じ発想だ——コスト削減の第一手はモデルのグレードダウンではなく、同じモデルの中でパラメータを絞ることにある。

✓
指示文の棚卸しは「思いつき」でなく物差しで検証儀式・強調の煽り・強制手順・矛盾ルール・古い例・古い設定の6項目で、CLAUDE.md/AGENTS.mdを定期的に読み返す。
✓
モデルを下げる前に、同じモデルの中の"強さ"を疑うeffort(またはそれに相当するパラメータ)を下げても要求水準を満たせないか、を先に試す。
✓
「効いた理由」を数値で確認する公式の実験も"なんとなく速くなった"ではなく、精度・コストの両方を数値で比較している。自分の運用でも変更の前後を測ってから効果を語る。