Claude Opus 4.7 の破壊的変更と adaptive thinking 実践

Anthropic から Claude Opus 4.7 がリリースされました。1M context をそのまま引き継ぎつつ、temperature / top_p / top_k / budget_tokens が API から削除されるなど破壊的変更が複数。新しい effort 値 xhigh、Task Budgets beta、thinking 表示の変更も含めて、既存コードの移行手順と実践的な使い分けをまとめます。

Anthropic から Claude Opus 4.7(モデル ID claude-opus-4-7)がリリースされました。1M トークン コンテキストはそのまま、価格も 4.6 と同等($5/1M input / $25/1M output)で据え置きですが、API 上の破壊的変更が複数含まれ、4.6 までのコードをそのままアップグレードすると実行時に 400 で落ちるケースがあります。本記事では、破壊的変更と新機能を整理し、移行と活用の実践手順をまとめます。

到達点

  • Opus 4.7 でどのパラメータが削除されたか / 残っているかを把握
  • effortxhigh と、既存の high / max の使い分け
  • 既存の budget_tokens 前提コードを adaptive thinking に書き換え
  • thinking 表示のデフォルト変更と、ストリーミング UI 側の対応
  • Task Budgets beta の位置づけと使いどころ

検証環境: 2026-04 時点、@anthropic-ai/sdk v0.90 系、Python SDK も同系列。

1. 破壊的変更 — 送ると 400 で返るもの

まず移行前に削る必要がある項目です。Opus 4.7 に送ると 400 になります(他モデルでは引き続き有効)。

  • temperature
  • top_p
  • top_k
  • thinking: { type: "enabled", budget_tokens: N }(enabled + 数値指定の形)
  • 直前ターンが assistant で終わる「prefill」(4.6 / Sonnet 4.6 でも 400)

sampling 系 3 つ(temperature / top_p / top_k)は丸ごと削除。budget_tokens はサーバ側で自動決定する adaptive thinking に一本化されました。

2. 置き換え先 — adaptive thinking + effort

Opus 4.7 の思考制御は 2 段で考えるのが素直です。

  • adaptive thinking: 思考の「量」を Claude が自己調整する。thinking: { type: "adaptive" } を指定するだけ
  • effort: 応答全体のトークン消費・tool 呼び出し回数・前置きを「どれくらい丁寧に」するかの軸。output_config: { effort: "..." } に入れる

effort の値は 4 段階から 5 段階 に拡張されました。

effort用途Opus 4.7 での位置
lowサブエージェント / 単純タスク / 大量並列既存
medium軽めの生成既存
high通常の知的作業のスイートスポット既存 (既定値)
xhighコーディング・エージェント実運用の推奨4.7 で追加(Claude Code の既定)
max正確性 > コスト、Opus 系のみ既存

筆者の運用感としては、コーディング伴走は xhigh 固定が 4.7 世代の基準点になります。max はレビュー・設計判断・バグの根本原因探索で正確性がコストに勝つとき。

3. 移行の具体手順

4.6 時代のコードから Opus 4.7 に乗せ替えるときの書き換え。

// Before (Opus 4.6 / Sonnet 4.6 時代)
await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 16_000,
  temperature: 0.3,
  thinking: { type: "enabled", budget_tokens: 10_000 },
  messages: [...],
});

// After (Opus 4.7)
await client.messages.create({
  model: "claude-opus-4-7",
  max_tokens: 16_000,
  thinking: { type: "adaptive" },
  output_config: { effort: "xhigh" },
  messages: [...],
});

書き換えのチェックリスト:

  • temperature / top_p / top_k削除(残すと 400)
  • thinking: { type: "enabled", budget_tokens: N }thinking: { type: "adaptive" } に変更
  • 必要に応じて output_config.effort を指定(未指定なら high)
  • 最終メッセージが assistant の prefill になっていないか確認。なっていたら user ターンに巻き直す

4. thinking 表示のデフォルト変更に注意

Opus 4.7 では thinking ブロックのテキストがデフォルトで空になりました(silent change、エラーは出ない)。ストリーミング UI に「考えている間のテキスト」を表示していた場合、アップグレード後に画面が長時間無音になるように見えます。

復旧するには display: "summarized" を明示する必要があります。

thinking: { type: "adaptive", display: "summarized" }

5. Task Budgets beta — 「予算」で agentic ループを自制させる

Opus 4.7 で追加された beta 機能。beta header task-budgets-2026-03-13output_config.task_budget を組み合わせます。

await client.beta.messages.create({
  betas: ["task-budgets-2026-03-13"],
  model: "claude-opus-4-7",
  max_tokens: 64_000,
  thinking: { type: "adaptive" },
  output_config: {
    effort: "xhigh",
    task_budget: { type: "tokens", total: 100_000 }, // 最小 20_000
  },
  messages: [...],
});

重要なのは max_tokens との性質差です。max_tokens は「1 レスポンス最大」のハード制限で、Claude 自身はその値を知りません。task_budgetagentic ループ全体のソフト予算で、Claude が残量を見ながら自分で計画を調整します。長時間の tool 連打を自制させたいときに効きます。

6. 使い分けのメンタルモデル

普段使いの目安として、筆者は次のように使い分けています。

  • デフォルトは claude-opus-4-7 + adaptive + xhigh — Claude Code や自作エージェントの伴走
  • サブエージェントは Haiku 4.5 + low(main のキャッシュを守るため別モデル)
  • 正確性命の場面 — レビュー・設計・重要バグの調査は max
  • 長時間 agentic ループtask_budget を 100K〜200K で明示

料金は Opus 4.6 / 4.7 とも同じ($5 / $25 per M tokens)なので、4.7 に寄せる上でコスト面の追加考慮はありません。移行コストは上記の API 書き換えのみです。

落とし穴

  • budget_tokens を 4.7 に送って 400 が返るのは移行漏れのサイン。Sonnet 4.6 / Opus 4.6 までは互換で動くので、モデルだけ上げてパラメータを整理しなかったケースで発生
  • temperature を CI のテストコード側に残す — fixture 系で temperature: 0 を送っていると 4.7 で落ちる。プロジェクト全体を grep しておく
  • 思考の可視化が消えて UI が無言化display: "summarized" を足す。エンドユーザー向けでない内部ツールなら "omitted"(デフォルト)のままで OK
  • サブエージェントまで 4.7 にしない — main だけ 4.7、探索は Haiku 4.5 に寄せる構成がキャッシュ効率の上でも合理的
  • Task Budgets の最小 20,000 トークン を満たさず指定して 400

まとめ

Opus 4.7 への移行は「削るべきパラメータを削り、adaptive + effort に寄せる」で大半が済みます。破壊的変更は sampling 系 3 つと budget_tokens、それと prefill の 4 種類が中心で、ドメインロジックに手を入れる必要はありません。新しい xhigh は Claude Code の既定でもあり、コーディング伴走の標準点として推奨されます。

次回以降、Anthropic のリリースが入るたびに同じ release notes タグで続報を出していきます。次は Claude Managed Agents ベータ を予定しています。

参考

記事で登場したコードをひとつの最小リポジトリとしてまとめました。ファイルツリーから切り替えて、全体の構造をそのまま確認できます。

$cat./package.jsonjson
{
  "name": "opus-4-7-migration-starter",
  "private": true,
  "type": "module",
  "scripts": {
    "before": "bun src/before.ts",
    "after": "bun src/after.ts",
    "budgets": "bun src/with-task-budgets.ts",
    "subagent": "bun src/subagent-split.ts"
  },
  "dependencies": {
    "@anthropic-ai/sdk": "^0.90.0"
  },
  "devDependencies": {
    "@types/bun": "^1.3.0",
    "typescript": "^6.0.3"
  }
}
slugclaude-opus-4-7-breaking-changesfiles8click a file in the tree to switch