CLAUDE LABEN
MCP — 2026-07-28 仕様への対応が Claude 製品群で広がっています。双方向ステートフルなプロトコルからリクエスト・レスポンス型へ移り、MCP サーバーをサーバーレスやエッジに置けるようになりましたEXTENSIONS — 公式拡張が3種そろいました。サーバー側で UI を描く MCP Apps、非同期の長時間処理を扱う Tasks、IdP 経由で組織単位に払い出す Enterprise Managed Auth ですADOPTION — MCP の月間 SDK ダウンロードが4億を超え、年内で約4倍になりました。エージェントとアプリケーションを繋ぐ標準としての位置づけが固まりつつありますQUOTA — Claude Code 契約者向けの週次利用枠 50% 上乗せは本日8月19日が最終日です。長時間のエージェント実行を回すなら今日が最後の機会になりますPRICING — Claude Sonnet 5 の導入価格 100万トークンあたり入力2ドル・出力10ドルは8月31日で終了し、9月1日から入力3ドル・出力15ドルへ移ります。残り12日ですFIX — タイムアウトが固定されたサーバーに対し MCP v2 接続がサブスクリプションを際限なく張り直す不具合が修正され、ユーザー帰属のための forward_user_identity 設定も追加されましたMCP — 2026-07-28 仕様への対応が Claude 製品群で広がっています。双方向ステートフルなプロトコルからリクエスト・レスポンス型へ移り、MCP サーバーをサーバーレスやエッジに置けるようになりましたEXTENSIONS — 公式拡張が3種そろいました。サーバー側で UI を描く MCP Apps、非同期の長時間処理を扱う Tasks、IdP 経由で組織単位に払い出す Enterprise Managed Auth ですADOPTION — MCP の月間 SDK ダウンロードが4億を超え、年内で約4倍になりました。エージェントとアプリケーションを繋ぐ標準としての位置づけが固まりつつありますQUOTA — Claude Code 契約者向けの週次利用枠 50% 上乗せは本日8月19日が最終日です。長時間のエージェント実行を回すなら今日が最後の機会になりますPRICING — Claude Sonnet 5 の導入価格 100万トークンあたり入力2ドル・出力10ドルは8月31日で終了し、9月1日から入力3ドル・出力15ドルへ移ります。残り12日ですFIX — タイムアウトが固定されたサーバーに対し MCP v2 接続がサブスクリプションを際限なく張り直す不具合が修正され、ユーザー帰属のための forward_user_identity 設定も追加されました
記事一覧/API & SDK
API & SDK/2026-07-05中級

Opus 4.7 の fast mode 廃止(7/24)で無人ジョブを落とさない — speed パラメータの事前検査と移行

claude-opus-4-7 の fast mode が 2026-07-24 に廃止され、speed: fast がエラーになります。無人パイプラインを静かに壊さないための、使用箇所の機械検出・fail-closed な実行時ガード・4.8 への移行シムを実装コード付きでまとめました。

Claude API117Opus 4.84モデル移行2無人運用7コスト設計7

プレミアム記事

土曜の朝、複数サイトの自動投稿ログを見返していて、ふと speed: "fast" をベタ書きしたまま何ヶ月も回し続けているスケジュールジョブがあることに気づきました。普段は誰も触らないコードです。だからこそ、パラメータの仕様が変わった瞬間に、誰にも気づかれずに落ちます。

2026-07-24 に claude-opus-4-7 の fast mode が廃止されます。それ以降、claude-opus-4-7 に対して speed: "fast" を指定したリクエストはエラーになります。モデル ID はそのまま生きているので、モデル引退のチェックリストには引っかかりません。にもかかわらず、特定のパラメータ組み合わせだけが期限切れになる。無人で回している処理ほど、この「モデルは残るのに設定だけ死ぬ」種類の変更に弱いのです。

ここでは、その 7/24 を静かに越えるための手順を、実際に動くコードとともに組み立てます。使用箇所の洗い出し、移行先の判断、実行時の防御、そして移行後の実測までを一続きで扱います。

7/24 に何が起きるか — speed: "fast" が例外になる

まず、変更の輪郭を正確に押さえます。廃止されるのは「モデル」ではなく「claude-opus-4-7 の fast mode という速度モード」です。Anthropic の告知では、7/24 以降 claude-opus-4-7speed: "fast" を渡すとエラーになり、fast mode を使いたい場合は Opus 4.8 の fast mode へ移す必要がある、とされています。

影響範囲を整理すると次のようになります。

呼び出しパターン7/24 以降の挙動
model=claude-opus-4-7 + speed=fastエラー(要移行)
model=claude-opus-4-7(speed 指定なし)通常どおり動作
model=claude-opus-4-8 + speed=fastfast mode で動作

厄介なのは、多くのコードで speed は「一度書いて忘れる」パラメータだという点です。レイテンシを詰めたい工程でだけ付け、その後は放置される。対話的に使っているアプリなら例外が出た瞬間に気づけますが、深夜のバッチや週次のスケジュールジョブでは、失敗ログが誰にも読まれないまま積み上がります。私自身、無人ジョブが静かに止まる事故を何度か経験していて、そのたびに「気づくのが3日遅れた」ことのコストの大きさを痛感しています。

だからこの移行の目的は、単に claude-opus-4-7claude-opus-4-8 に置換することではありません。「どこで fast mode を使っているか」を人手の記憶に頼らず把握し、移行漏れがあっても実行時に安全側へ倒れる状態を作ることです。

具体的には、次の3段階で順に進めます。

  1. コードベースから fast mode の使用箇所を機械的に検出する
  2. 箇所ごとに移行先(Opus 4.8 の fast mode か、speed の除去か)を決める
  3. 移行漏れに備え、実行時に fail-closed で守るガードを一枚挟む

まず現状を洗い出す — fast mode 使用箇所を機械的に検出

記憶や grep の一発勝負に頼ると、必ず取りこぼします。speed が変数経由で渡っていたり、共通ラッパー関数の既定値に隠れていたりするからです。そこで、単純な文字列検索ではなく「Opus 4.7 と fast が同じ呼び出しに同居している箇所」を炙り出す検査を用意します。

まずは軽量な一次スクリーニングとして、リポジトリ全体を走査します。

# 一次スクリーニング: opus-4-7 と speed/fast が近接する行を拾う
# 変数越しの指定は拾えないので、あくまで「当たりを付ける」用途
grep -rniE "opus-4-7|speed.{0,20}fast|fast.{0,20}speed" \
  --include="*.py" --include="*.ts" --include="*.js" \
  --include="*.json" --include="*.yaml" --include="*.yml" . \
  | grep -viE "node_modules|/dist/|/build/"

一次スクリーニングで当たりを付けたら、次に呼び出し単位で正確に判定します。ここでは Python の呼び出しを対象に、AST を使って「同じ関数呼び出しの中に model=...opus-4-7speed="fast" が両方ある」ケースだけを抽出します。文字列の近接ではなく構文木で見るので、誤検出が減ります。

# fast_mode_scan.py — Opus 4.7 + speed=fast の共起を AST で検出
import ast
import pathlib
import sys
 
def literal(node):
    """定数文字列ならその値、そうでなければ None を返す。"""
    if isinstance(node, ast.Constant) and isinstance(node.value, str):
        return node.value
    return None
 
def scan_file(path: pathlib.Path):
    """1ファイルを走査し、危険な呼び出しの行番号を返す。"""
    hits = []
    try:
        tree = ast.parse(path.read_text(encoding="utf-8"))
    except (SyntaxError, UnicodeDecodeError):
        return hits  # 解析不能なファイルは一次スクリーニングに委ねる
 
    for node in ast.walk(tree):
        if not isinstance(node, ast.Call):
            continue
        model_val, speed_val = None, None
        for kw in node.keywords:
            if kw.arg == "model":
                model_val = literal(kw.value)
            elif kw.arg == "speed":
                speed_val = literal(kw.value)
        # model が変数越しでも、speed=fast があれば要確認として拾う
        risky_model = model_val is not None and "opus-4-7" in model_val
        risky_speed = speed_val == "fast"
        if risky_speed and (risky_model or model_val is None):
            hits.append((node.lineno, model_val or "<変数>", speed_val))
    return hits
 
def main(root="."):
    total = 0
    for path in pathlib.Path(root).rglob("*.py"):
        if any(p in path.parts for p in ("node_modules", "dist", "build", ".venv")):
            continue
        for lineno, model, speed in scan_file(path):
            print(f"{path}:{lineno}  model={model} speed={speed}")
            total += 1
    print(f"\n合計 {total} 箇所")
    # CI に組み込む場合は、検出があれば非ゼロ終了で気づけるようにする
    return 1 if total else 0
 
if __name__ == "__main__":
    sys.exit(main(sys.argv[1] if len(sys.argv) > 1 else "."))

実行結果はたとえば次のようになります。

services/summarizer.py:88  model=claude-opus-4-7 speed=fast
jobs/nightly_digest.py:41  model=<変数> speed=fast
合計 2 箇所

2件目のように model=<変数> で出た箇所は、変数の中身を人の目で確認します。共通ラッパーの既定値に claude-opus-4-7 が入っていれば、この1行が実は複数ジョブに波及しているかもしれません。私はこの手のスキャンを CI に組み込み、検出があればビルドを失敗させる運用にしています。棚卸しを「思い出したときにやる作業」から「毎回自動で走る検査」に変えるだけで、移行漏れの不安がかなり減ります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
speed: fast をハードコードした無人ジョブが 7/24 に突然失敗する問題を、事前検査で先回りできるようになる
コードベースから fast mode 使用箇所を機械検出し、実行時に fail-closed で守るガードを実装できる
Opus 4.8 fast mode への移行後、レイテンシとコストが本当に見合うかを実測して判断できる
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API & SDK2026-07-03
単価が40%下がっても、タスク単価は下がるとは限らない — Opus 4.8 から Sonnet 5 への移行損益をトークン消費プロファイルで測る
Sonnet 5 の導入価格は Opus 4.8 より約40%安ですが、ツール往復が増えるとタスク単価は逆転し得ます。消費ベクトルの記録・並走ハーネス・損益分岐ターン数の逆算までを動くTypeScriptと実測で示します。
API & SDK2026-07-13
画像を原寸で送るか縮小するか — Opus 4.7 の高解像度ビジョンで1枚ごとに解像度を決めるコスト設計
Opus 4.7 の高解像度ビジョンで壁紙の細部分類は上がったのに、全部を原寸で送ったら週のトークンが跳ねました。1枚ごとに解像度と使うモデルを決める preflight を設計し、精度を保ったままコストを下げた実測を残します。
API & SDK2026-07-10
夜間バッチが勝手に上位モデルで走っていた — タスクごとにモデル上限を宣言して機械で守る
モデル名をコードに散らすと、いつのまにか安いはずのバッチが上位モデルで走ります。タスクごとの上限を宣言するマニフェストと、既定拒否の解決レイヤ、そして逸脱を検出する差分監査の設計をコード付きでまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →