
1Mトークンが使えない——Sonnet 4.6移行の全手順
あなたのAPIが今日から動かなくなっているかもしれない。2026年4月30日、Anthropicは context-1m-2025-08-07 ベータヘッダーの提供を終了した。このヘッダーを付与して Claude Sonnet 4.5 または Claude Sonnet 4 にリクエストを送っていた実装は、現時点ですでにエラーを返している可能性が高い。本記事では影響範囲の確認から Sonnet 4.6 への移行完了まで、最小変更で対処できる手順を解説する。
この記事の要約: context-1m-2025-08-07 ベータヘッダーが2026年4月30日に廃止され、Claude Sonnet 4.5 / Sonnet 4 での1Mトークン利用が不可能になった。モデルを claude-sonnet-4-6 へ変更し、ベータヘッダーを削除するだけで移行は完了する。Sonnet 4.6 以降は1Mトークンが標準仕様となり、ヘッダー不要で大規模コンテキストが扱える。
目次 (21)
- 何が廃止されたのか——ベータヘッダーの仕組みと影響を受けるモデル
- 今日から壊れるコードの見つけ方——4つの手順で影響範囲を確認する
- コードベース内の文字列検索
- 環境変数・設定ファイルの確認
- エラーログで確認すべき内容
- ステージング環境での確認手順
- Sonnet 4.6 / Opus 4.6 への移行手順——最小変更で動かす
- モデル名の変更
- ベータヘッダーの扱い
- SDKバージョンの確認
- 料金と性能の変化——Sonnet 4.6 移行後に何が変わり何が良くなるか
- 料金体系の比較
- 「ベータ」から「標準」になった意味
- 性能面の変化
- コスト最適化のモデル選択指針
- 移行後に広がるユースケース——1Mトークンを標準で使える世界
- 大規模コードベースの一括レビュー
- 長大ドキュメントの要約・質問応答
- 複数ファイルにまたがるリファクタリング支援
- 1Mトークンを活かしたシステム設計のヒント
- 出典
何が廃止されたのか——ベータヘッダーの仕組みと影響を受けるモデル
Claude API には一部の機能を試験的に有効化するための「ベータヘッダー」という仕組みがある。anthropic-beta ヘッダーに特定の文字列を指定することで、正式リリース前の機能をオプトインで利用できる形式だ。
今回廃止されたのは context-1m-2025-08-07 という値で、このヘッダーを付けることで通常200kトークンに制限されていたコンテキストウィンドウを最大100万トークンまで拡張できた。ベータ期間中は多くの実装がこの方法で大規模コンテキストを利用しており、長大なドキュメント処理やコードベース一括解析などのユースケースで広く使われていた。
廃止対象となるモデルは以下の2つ:
claude-sonnet-4-5(およびそのエイリアス)claude-sonnet-4(およびそのエイリアス)
Anthropicは2026年3月30日に廃止を予告しており(リリースノート参照)、猶予期間は約1ヶ月あった。しかし周知が行き届かなかったケースも多く、4月30日の廃止後もヘッダー付きのリクエストを送り続けているシステムが存在する。
廃止後の挙動はヘッダーの無効化だ。ヘッダーを付けていても無視され、コンテキストウィンドウは200kトークンに戻る。200kを超えるプロンプトを送った場合はエラーが返るため、実質的にリクエスト全体が失敗する。
今日から壊れるコードの見つけ方——4つの手順で影響範囲を確認する
まず自分のコードベースが影響を受けているかどうかを確認する。context-1m-2025-08-07 ヘッダーの記述はコードベース内の文字列検索で一括検出できるが、モデル名を環境変数で管理している場合は設定ファイルも別途確認が必要だ。また、4月30日の廃止以降すでにエラーが発生している可能性があるため、ログの照合とステージング検証も合わせて実施することを推奨する。以下の4手順を順番に実施して、本番適用前に影響範囲を把握してほしい。
コードベース内の文字列検索
ターミナルで次のコマンドを実行し、ベータヘッダーの記述がないか確認する:
grep -r "context-1m" . --include="*.py" --include="*.ts" \
--include="*.js" --include="*.rb" --include="*.go"
grep -r "anthropic-beta" . --include="*.py" --include="*.ts" \
--include="*.js" -l
ヒットしたファイルで claude-sonnet-4-5 や claude-sonnet-4 のモデル名が一緒に使われていれば、移行対象の実装だ。
環境変数・設定ファイルの確認
モデル名をハードコードせず環境変数で管理している場合は、.env ファイルや設定管理サービスも確認する:
grep -r "CLAUDE_MODEL\|ANTHROPIC_MODEL\|MODEL_ID" . \
--include="*.env" --include="*.yaml" --include="*.json"
sonnet-4-5 や sonnet-4 という文字列が含まれていれば更新が必要だ。Kubernetes や Docker Compose の環境変数設定も見落としがちなので、あわせて確認しておきたい。
エラーログで確認すべき内容
すでにエラーが発生している場合、ログには次のようなメッセージが出ているはずだ:
- ステータスコード:
400 Bad Request - エラータイプ:
invalid_request_error - メッセージ例:
prompt is too longまたはcontext window exceeded
200kトークン以内のリクエストでも、ヘッダーに依存したロジックが組まれている場合は予期しない動作が起きることがある。ログに anthropic-beta 関連の警告がないかも確認しておく。
ステージング環境での確認手順
本番適用の前にステージングで動作確認する場合は、意図的に200kトークンを超えるプロンプトを送ってレスポンスを確認する。エラーが返れば旧モデルのままであることが分かる。移行後は同じプロンプトが正常に処理されることを確認して完了とする。
Sonnet 4.6 / Opus 4.6 への移行手順——最小変更で動かす
移行自体は非常にシンプルで、モデル指定を変更してベータヘッダーを削除するだけで完了する。旧モデル(Sonnet 4.5 / Sonnet 4)との後方互換性はAPIレベルで保たれており、既存のロジックやプロンプト設計に手を加える必要はない。SDKのバージョン確認とモデル名の置換、ヘッダーの削除という3点を対処すれば、通常数分以内に移行が完了する。Python・TypeScript それぞれのコード例を用いて順に説明する。
モデル名の変更
コードの変更は最小限だ。model パラメータの値を新しいモデル ID に置き換え、extra_headers または headers に指定していたベータヘッダーを削除するだけで完了する。プロンプトやロジックの変更は不要だ。
# 変更前(Sonnet 4.5 + ベータヘッダー)
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=8192,
extra_headers={"anthropic-beta": "context-1m-2025-08-07"},
messages=[{"role": "user", "content": very_long_prompt}]
)
# 変更後(Sonnet 4.6、ヘッダー不要)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=8192,
messages=[{"role": "user", "content": very_long_prompt}]
)
TypeScript / Node.js の場合も同様:
// 変更前
const response = await client.messages.create({
model: "claude-sonnet-4-5",
max_tokens: 8192,
headers: { "anthropic-beta": "context-1m-2025-08-07" },
messages: [{ role: "user", content: veryLongPrompt }],
});
// 変更後
const response = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 8192,
messages: [{ role: "user", content: veryLongPrompt }],
});
ベータヘッダーの扱い
Sonnet 4.6 以降では context-1m-2025-08-07 ヘッダーは不要だ。付けたまま送っても現時点では動作するが、無効なヘッダーとして将来的に警告やエラーの対象になる可能性があるため、削除しておくことを推奨する。
SDKバージョンの確認
Python SDK (anthropic) はバージョン 0.20.0 以降、Node.js SDK (@anthropic-ai/sdk) はバージョン 0.18.0 以降で、追加ヘッダーなしに大規模コンテキストを扱えるモデルが正式サポートされている。古いバージョンを使っている場合は先にアップデートしておく:
# Python
pip install --upgrade anthropic
# Node.js
npm install @anthropic-ai/sdk@latest
モデル選択の基準: 精度よりコストと速度を優先するなら claude-sonnet-4-6、長大コンテキストでの推論品質を最大化したいなら claude-opus-4-6 を選ぶ。
料金と性能の変化——Sonnet 4.6 移行後に何が変わり何が良くなるか
移行後にまず気になるのがコストと品質の変化だ。Sonnet 4.6 は Sonnet 4.5 と同等の料金体系を維持しながら、1Mトークンを標準仕様として提供する。つまりベータ期間中と同じ料金で、より安定した大規模コンテキスト処理が可能になった。また、長大コンテキストでの指示追従精度も向上しており、コスト面だけでなく品質面でも移行のメリットがある。以下ではモデルごとの料金比較から性能変化、コスト最適化の指針まで順に説明する。
料金体系の比較
| モデル | 入力トークン単価 | 出力トークン単価 | コンテキスト |
|---|---|---|---|
| Claude Sonnet 4.5(旧) | $3 / 1Mトークン | $15 / 1Mトークン | 200k(β時1M) |
| Claude Sonnet 4.6(新) | $3 / 1Mトークン | $15 / 1Mトークン | 1M(標準) |
| Claude Opus 4.6(新) | $15 / 1Mトークン | $75 / 1Mトークン | 1M(標準) |
Sonnet 4.6 は旧 Sonnet 4.5 と同等の料金水準を維持しながら、1Mトークンが標準機能として提供される。ベータ期間中と同じ料金で、より安定した大規模コンテキスト処理が可能になった。
「ベータ」から「標準」になった意味
ベータ機能は予告なく変更・廃止されるリスクがある。今回がまさにその事例だ。Sonnet 4.6 以降では1Mトークンが標準仕様として提供されるため、突然のヘッダー廃止で本番環境が止まるようなリスクがなくなる。SLAやサポート対象の範囲にも含まれるため、プロダクション利用での信頼性が大幅に向上した。
性能面の変化
Sonnet 4.6 は Sonnet 4.5 と比較して、長大コンテキストでの指示追従精度が改善されている。特に50万トークンを超える入力での文書参照精度と、複数の情報源を組み合わせた回答品質が向上している。レイテンシは同等水準を維持しており、移行後にパフォーマンスが劣化することは通常ない。
コスト最適化のモデル選択指針
- Sonnet 4.6 推奨: 大量バッチ処理、コスト重視のユースケース、Sonnet 4.5 からのそのままの移行
- Opus 4.6 推奨: 複雑な推論・分析が必要なタスク、精度が収益に直結する場面、1Mトークン全体を活用した深い理解が必要なケース
料金差は約5倍のため、まず Sonnet 4.6 で品質を評価し、不足があれば Opus 4.6 に切り替える段階的アプローチが現実的だ。
移行後に広がるユースケース——1Mトークンを標準で使える世界
1Mトークンが「ベータ」ではなく「標準」になったことで、これまでリスク覚悟で使っていた大規模処理が本番品質で使えるようになった。突然のヘッダー廃止を恐れてコンテキストサイズを意図的に抑えていた実装も、Sonnet 4.6 ならそのまま拡張できる。大規模コードベースの一括レビュー・長大ドキュメントへの質問応答・複数ファイルにまたがるリファクタリング支援など、これまで「やりたいがリスクがあった」ユースケースが、今後は標準機能として活用できる。
大規模コードベースの一括レビュー
数万行規模のコードベースを一度に渡して、依存関係の問題、セキュリティ上の懸念、設計上の矛盾を一括で検出できる。チャンク分割やベクトル検索のような前処理は不要で、ファイルをそのままテキストとして渡すだけでよい。モデルがコード全体の文脈を保持するため、複数ファイルにまたがる問題も正確に指摘できる。
with open("entire_codebase.txt", "r") as f:
code_content = f.read()
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
messages=[{
"role": "user",
"content": f"以下のコードベースを審査し、\n"
f"セキュリティ上の懸念点を列挙してください:\n\n"
f"{code_content}"
}]
)
長大ドキュメントの要約・質問応答
数百ページの仕様書、法的文書、論文群を一括で投入し、特定の条件に該当する箇所を横断検索できる。従来は分割してチャンクごとに処理する必要があったが、1Mトークンがあれば文書全体の文脈を保ったまま回答が得られる。
複数ファイルにまたがるリファクタリング支援
関数・クラス・設定ファイルが複数のモジュールに分散している場合でも、すべてのファイル内容を一つのコンテキストに詰め込んで「このAPIの呼び出し箇所をすべて新しいインターフェースに置き換えるには?」という質問に対し、整合性のある回答が得られる。
1Mトークンを活かしたシステム設計のヒント
大規模コンテキストを有効活用するには、プロンプトキャッシュとの組み合わせが重要だ。変更が少ないシステムプロンプトや参照ドキュメントをキャッシュすることで、コストを大幅に削減できる。Sonnet 4.6 はプロンプトキャッシュに完全対応しており、繰り返し利用するコンテキストのキャッシュヒット率を高めることが長期的なコスト管理の鍵になる。
なおベータヘッダー廃止に関連するAI業界の動向については、TechCrunchの報道でも取り上げられている。モデルアクセス制限をめぐる各社の対応は今後も注目が必要だ。