結論: Claude Code v2.1.108(2026年4月14日)でENABLE_PROMPT_CACHING_1H環境変数が追加され、プロンプトキャッシュのTTLを5分から1時間に拡張できるようになりました。40MB超えのセッション再開が最大67%高速化し、複数のMCPサーバーの起動も並列化で高速になりました。
この記事の要点:
- 要点1: ENABLE_PROMPT_CACHING_1H=1で1時間TTLに切り替え、FORCE_PROMPT_CACHING_5M=1で強制的に5分TTLに固定できる
- 要点2: 40MB超えの大規模セッションで–resumeを使うと最大67%高速化。dead-fork entryの処理も改善
- 要点3: ローカルとclaude.ai両方のMCPサーバーが設定されている場合、並列接続がデフォルトになり起動が大幅短縮
対象読者: Claude APIを企業で利用しているエンジニア・IT部門、Bedrock・Vertex・Foundry経由でコストを管理したい担当者
読了後にできること: ENABLE_PROMPT_CACHING_1Hを今日から設定してAPIコストを削減できる
「Claude CodeのAPIコスト、思ったより高くなってきました。どう最適化すればいいですか?」
企業向けAI研修でこの質問が増えています。特にBedrockやVertexでClaude Codeを使っている企業から多いです。AI活用が本格化すると、コストの最適化が次のフェーズに必ず来ます。
先日、顧問先のSaaSスタートアップのエンジニアが「Claude Codeを1日中使っていると、同じコードベースを何度も送信しているのが無駄だと気づいた」と言っていました。まさにその通りで、プロンプトキャッシュはその問題を解決するための機能です。
v2.1.108で追加されたENABLE_PROMPT_CACHING_1Hは、キャッシュの有効期限を5分から1時間に延ばすシンプルな変更ですが、企業にとっての実務的な意味は大きいです。会議で30分席を外してClaude Codeに戻ったとき、もうキャッシュが切れていて最初からトークンを消費する、という状況がなくなります。
この記事では、プロンプトキャッシュの仕組みから、セッション再開の高速化、MCPサーバーの起動最適化、VS Code環境の改善まで、API利用企業が今すぐ実践できる設定をまとめます。
まず設定する:プロンプトキャッシュ環境変数の使い方
v2.1.108で追加された環境変数は2つです。
1時間TTLの設定
# ~/.bashrc または ~/.zshrc に追加
export ENABLE_PROMPT_CACHING_1H=1
# Bedrock専用の旧変数(今も動くが非推奨)
# export ENABLE_PROMPT_CACHING_1H_BEDROCK=1
# 適用確認(再起動後)
claude --version # v2.1.108以降であることを確認
この変数はAPI key・Bedrock・Vertex・Foundryの全プロバイダーで機能します。
5分TTLに固定する(テスト用)
# 1時間TTLをオフにして5分TTLに戻したいとき
export FORCE_PROMPT_CACHING_5M=1
# または一時的に特定のセッションだけ
FORCE_PROMPT_CACHING_5M=1 claude
FORCE_PROMPT_CACHING_5Mは主にテスト環境でキャッシュの動作を検証するためや、短時間で多くのコンテキスト変更がある場合に使います。
キャッシュ無効化の警告(v2.1.101以降)
# DISABLE_PROMPT_CACHING*が設定されていると起動時に警告が表示される
# 意図せずキャッシュをオフにしている企業がいた。このケースを防ぐための改善
export DISABLE_PROMPT_CACHING=1 # これを設定すると起動時に警告が出る
プロンプトキャッシュの仕組み:コスト削減率の計算
プロンプトキャッシュを理解するには、コスト構造を把握することが重要です。企業でのAI導入についてはAI導入戦略ガイドもあわせてご覧ください。
| 操作 | コスト倍率 |
|---|---|
| ベース入力トークン(キャッシュなし) | 1.0× |
| 5分キャッシュ書き込み | 1.25× |
| 1時間キャッシュ書き込み | 2.0× |
| キャッシュ読み取り(ヒット時) | 0.1× |
コスト削減シミュレーション
100,000トークンのコードベースコンテキストを1日10回送信するケースで比較します。
キャッシュなしの場合:
100,000 tokens × 10回 = 1,000,000 token units
5分キャッシュの場合(初回書き込み + 9回ヒット):
100,000 × 1.25 (書き込み) + 900,000 × 0.1 (読み取り) = 215,000 token units
削減率: 78.5%
1時間キャッシュの場合(初回書き込み + 9回ヒット):
100,000 × 2.0 (書き込み) + 900,000 × 0.1 (読み取り) = 290,000 token units
削減率: 71%
# 数字と固有名詞は、根拠(出典/計算式)を添えてください。
1時間キャッシュは書き込みコストが高い分、5分キャッシュより削減率は低くなりますが、5分以上の間隔がある作業では1時間キャッシュの方が有効です。会議中・休憩中など実務を考えると、多くの企業では1時間TTLの方が適しています。
キャッシュが効く最小トークン数
プロンプトキャッシュは最小1,024〜4,096トークン(モデルによって異なる)以上が必要です。短いプロンプトはキャッシュされません。コードベースの大きなコンテキスト・システムプロンプト・ツール定義のキャッシュが主なユースケースです。
セッション再開の67%高速化:–resumeとの組み合わせ
Claude Codeのセッション再開(–resume / –continue)にプロンプトキャッシュが適用されると、大幅な高速化が起きます。
# セッション再開の基本
claude --resume
# または最新のセッションを再開
claude --continue
# 特定のセッションを指定
claude --resume
67%高速化の条件
最大67%の高速化は40MB以上の大規模セッションで測定された数値です。
測定条件: 40MB超えのセッション(多くのファイルを読み込んだ長時間のClaude Codeセッション)を–resumeで再開した際の比較。v2.1.108のキャッシュ改善が適用されている場合の計測値。(出典: Claude Code公式ドキュメントChangelog)
研修先でよく見るシナリオは、長時間のリファクタリングセッション(2〜3時間)の途中で一時中断した後の再開です。キャッシュが有効な場合、再開後の最初のリクエストが前のセッションのキャッシュされたコンテキストから始まるため、初期化コストが大幅に下がります。
dead-fork entryの処理改善
大規模セッションでは「dead-fork entry」と呼ばれる使われなくなった会話ブランチが蓄積します。v2.1.108ではこの処理も改善され、多くのdead-fork entryを持つセッションの再開が高速化しました。
2026年4月1日のバグ修正
実は2026年4月1日以前は–resumeで重大な問題がありました: セッション再開直後に「deferred tools・MCPサーバー・カスタムエージェント」を使っているユーザーのキャッシュが完全にミスしていたのです。5分以内に再開してもキャッシュが使われず、最初からトークンを消費していました。これはv2.1.79の修正で解決しています(GitHub Issue #42338)。
MCPサーバー起動の最適化:並列接続のデフォルト化
複数のMCPサーバーを使っている場合、v2.1.108の変更が起動時間に大きく影響します。
並列接続のデフォルト化
# ~/.claude/settings.json でMCPを複数設定している場合
{
"mcpServers": {
"local-tools": {
"command": "node",
"args": ["~/.claude/mcp/local-tools/server.js"]
},
"claude-ai-tools": {
"type": "remote",
"url": "https://claude.ai/mcp/tools"
},
"db-tools": {
"command": "python3",
"args": ["~/.claude/mcp/db-tools/server.py"]
}
}
}
v2.1.108以前は、ローカルMCPサーバーとclaude.ai MCPサーバーが順次接続されていました。v2.1.108から並列接続がデフォルトになり、3つのMCPサーバーを起動する場合の時間が最大で1/3に短縮されています。
ToolSearch有効時のキャッシュ改善
v2.1.105でToolSearch(MCPツールの検索機能)が有効な場合のグローバルシステムプロンプトキャッシュが改善されました。
# ToolSearchを有効にした設定例
{
"toolSearch": true,
"mcpServers": {
"many-tools": {
"command": "node",
"args": ["./mcp-server-with-100-tools.js"]
}
}
}
大量のMCPツールが設定されている環境でも、グローバルシステムプロンプトのキャッシュが正しく機能するようになりました。
VS Code・Cursor・Windsurf端末でのフルスクリーン改善
v2.1.110で追加された/tuiコマンドは、VS Code・Cursor・WindsurfなどのIDEに統合されたターミナルでの体験を大幅に改善します。
# コマンドで即時切り替え
/tui fullscreen
# ~/.claude/settings.json で永続化
{
"tui": true
}
# 元に戻す
/tui normal
フルスクリーンの効果
IDE内のターミナルで長時間エージェントタスクを実行すると、通常はフリッカー(画面のちらつき)が発生します。/tui fullscreenはこれを解消し、全画面のフリッカーなしレンダリングに切り替えます。
顧問先のVS Codeを主に使う開発チームでは「これがないと30分以上のタスクが見てられなかった」という声が多かったです。特にCursorユーザーからの反応が大きかった機能です。
フルスクリーンが特に効果的なケース
- 30分以上の長時間エージェントタスク
- 多くのファイルを並列処理するバッチ作業
- CI/CDログのリアルタイム表示
- Monitorツールと組み合わせたリアルタイム監視
企業別コスト最適化ロードマップ
規模と使い方に応じた最適化の優先順位を整理します。
小規模(5名以下のチーム)
# まずENABLE_PROMPT_CACHING_1Hを設定する
export ENABLE_PROMPT_CACHING_1H=1
# ~/.claude/settings.json でキャッシュ最大化
{
"tui": true
}
期待効果: APIコスト 50〜70%削減(頻繁なセッション再開前提)
中規模(10〜50名のエンジニアチーム)
# 組織レベルでの設定(/etc/environment や .env共通ファイル)
ENABLE_PROMPT_CACHING_1H=1
CLAUDE_CODE_ENABLE_TELEMETRY=1 # コスト追跡のためOpenTelemetry有効化
OTEL_METRICS_EXPORTER=otlp
OTEL_EXPORTER_OTLP_ENDPOINT=http://your-monitoring-server:4317
期待効果: チーム全体でコストを可視化しながら最適化できる
大規模(Bedrock/Vertex/Foundry経由の企業利用)
# cache_control をAPIレベルで明示的に設定
{
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "大量のコードベースコンテキスト...",
"cache_control": {
"type": "ephemeral",
"ttl": "1h"
}
}
]
}
]
}
期待効果: 繰り返し送信する大規模コンテキストのコストを最大71%削減
【要注意】プロンプトキャッシュの失敗パターン
失敗1:プランの変更ごとにシステムプロンプトを変更する
❌ システムプロンプトに動的な日時・ユーザーIDなどを含める
⭕ システムプロンプトは静的に保ち、動的要素はメッセージ側に含める
キャッシュはコンテンツが一致したときに機能します。システムプロンプトに現在時刻: 2026-04-19 09:35:21のような動的要素を含めると、毎回キャッシュがミスします。
失敗2:DISABLE_TELEMETRYでキャッシュが5分TTLに落ちる
❌ DISABLE_TELEMETRYを設定しているMaxサブスクライバーが1時間TTLを期待する
⭕ v2.1.108ではDISABLE_TELEMETRY設定時のTTLフォールバックバグが修正済み
v2.1.108以前は、DISABLE_TELEMETRYを設定したMaxサブスクライバーが1時間TTLのはずが5分TTLにフォールバックするバグがありました。v2.1.108で修正されましたが、古いバージョンを使い続けている場合は更新が必要です。
失敗3:Bedrock専用変数を使い続ける
❌ ENABLE_PROMPT_CACHING_1H_BEDROCK=1を使い続ける
⭕ ENABLE_PROMPT_CACHING_1H=1に移行する(Bedrock以外も含む統一変数)
古いBedrock専用変数は引き続き動作しますが、非推奨になりました。全プロバイダー対応のENABLE_PROMPT_CACHING_1H=1に統一することを推奨します。
失敗4:最小キャッシュサイズを下回るプロンプトで期待する
❌ 短いプロンプト(1,000トークン未満)でキャッシュ削減を期待する
⭕ 大きなコードベースコンテキスト・ツール定義・システムプロンプトを先頭に配置してキャッシュに乗せる
# キャッシュが効く設計(コードベースコンテキストを先頭に)
system: """
[大量のコードベース解説 - 10,000+ tokens]
[ツール定義リスト]
[プロジェクト固有ルール]
"""
# ↑ここがキャッシュされる
user: "新しいAPIエンドポイントを追加してください"
# ↑ここは毎回送信(短いので問題ない)
コスト監視:OpenTelemetryとキャッシュ使用率の確認
キャッシュが効いているか確認するには、APIレスポンスのトークン内訳を確認します。
# APIレスポンスでのトークン内訳確認
{
"usage": {
"input_tokens": 1000, # キャッシュミスのトークン(課金対象)
"cache_creation_input_tokens": 5000, # キャッシュ書き込みトークン(1.25x or 2.0x)
"cache_read_input_tokens": 50000, # キャッシュ読み取りトークン(0.1x)
"output_tokens": 500
}
}
# cache_read_input_tokensが大きいほど、キャッシュが効いている証拠
OpenTelemetryを有効にすると、これらの指標を時系列でGrafanaやDatadogに送信できます。チームのキャッシュヒット率を週次でモニタリングして、最適化の効果を確認することをお勧めします。
参考・出典
- Prompt caching — Claude API Docs(参照日: 2026-04-19)
- Changelog — Claude Code Docs(参照日: 2026-04-19)
- Session resume invalidates entire prompt cache — GitHub Issue #42338(参照日: 2026-04-19)
- Claude Code Release Notes April 2026 — Releasebot(参照日: 2026-04-19)
- Claude Code Changelog: All Release Notes — claudefa.st(参照日: 2026-04-19)
まとめ:今日から始める3つのアクション
- 今日やること:
export ENABLE_PROMPT_CACHING_1H=1を.bashrcまたは.zshrcに追加して即適用する - 今週中: 複数MCPサーバーを使っているなら起動時間を計測してv2.1.108以降にアップデートする
- 今月中: OpenTelemetryを設定してチーム全体のキャッシュヒット率をダッシュボードで可視化する
次回予告: 次の記事では「Claude Code企業研修の実践ロードマップ」をテーマに、30日・60日・90日でのAI開発文化の定着方法を解説します。
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。


