結論: Claude Code v2.1.108(2026年4月14日)でENABLE_PROMPT_CACHING_1H環境変数が追加され、プロンプトキャッシュのTTLを5分から1時間に拡張できるようになりました。続くv2.1.116では40MB超えのセッション再開が最大67%高速化し、v2.1.117ではローカルとclaude.aiのMCPサーバーへの並列接続が既定になって起動が速くなりました。
この記事の要点:
- 要点1: ENABLE_PROMPT_CACHING_1H=1で1時間TTLに切り替え、FORCE_PROMPT_CACHING_5M=1で強制的に5分TTLに固定できる
- 要点2: v2.1.116で、40MB超えの大規模セッションの再開(/resume)が最大67%高速化。dead-fork entryの処理も改善
- 要点3: v2.1.117で、ローカルと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利用企業が今すぐ実践できる設定をまとめます。
【追記 2026年9月30日】キャッシュの効き具合は /usage で確認できます
Opus 5.5 ではキャッシュ読み出しの単価が60%下がりました。キャッシュから読めた割合の見方と、費用全体の読み方は Claude Codeの費用の見方|/usageとeffortの使い分け【2026年9月】 に整理しています。
まず設定する:プロンプトキャッシュ環境変数の使い方
【2026年9月30日追記】Claude Code v2.1.242以降は、主会話のキャッシュの有効期限を設定の promptCacheTtl(環境変数 CLAUDE_CODE_PROMPT_CACHE_TTL)で、サブエージェントなど主会話以外を subagentPromptCacheTtl(環境変数 CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL)で、それぞれ5mか1hに指定でき、Claudeのサブスクリプションをプランの利用枠内で使う場合の主会話は指定しなくても1時間です。以下のENABLE_PROMPT_CACHING_1H=1も今も使え、両方を1時間にします(FORCE_PROMPT_CACHING_5M、各環境変数、各設定、ENABLE_PROMPT_CACHING_1Hの順に優先)。
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.108以降)
# 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%
# 読み取りの0.1倍は標準の倍率です。Claude Opus 5.5は0.05倍、Claude Fable 5.1は0.025倍です(2026年9月30日時点の公式料金表)
1時間キャッシュは書き込みコストが高い分、5分キャッシュより削減率は低くなりますが、5分以上の間隔がある作業では1時間キャッシュの方が有効です。会議中・休憩中など実務を考えると、多くの企業では1時間TTLの方が適しています。
キャッシュが効く最小トークン数
プロンプトキャッシュは最小512〜4,096トークン(モデルによって異なる。Claude Opus 5.5・Sonnet 5.5・Fable 5.1などは512トークン、2026年9月30日時点)以上が必要です。短いプロンプトはキャッシュされません。コードベースの大きなコンテキスト・システムプロンプト・ツール定義のキャッシュが主なユースケースです。
セッション再開の67%高速化:–resumeとの組み合わせ
Claude Codeのセッション再開(–resume / –continue)にプロンプトキャッシュが適用されると、大幅な高速化が起きます。
# セッション再開の基本
claude --resume
# または最新のセッションを再開
claude --continue
# 特定のセッションを指定
claude --resume <session-id>
67%高速化の条件
最大67%の高速化は40MB以上の大規模セッションで測定された数値です。
測定条件: 40MB超えのセッション(多くのファイルを読み込んだ長時間のClaude Codeセッション)を再開した際の数値で、v2.1.116の変更履歴に「/resume が最大67%高速」と書かれています。これより細かい測定条件は公開されていません。(出典: Claude Code公式ドキュメントChangelog)
研修先でよく見るシナリオは、長時間のリファクタリングセッション(2〜3時間)の途中で一時中断した後の再開です。キャッシュが有効な場合、再開後の最初のリクエストが前のセッションのキャッシュされたコンテキストから始まるため、初期化コストが大幅に下がります。
dead-fork entryの処理改善
大規模セッションでは「dead-fork entry」と呼ばれる使われなくなった会話ブランチが蓄積します。v2.1.116ではこの処理も改善され、多くのdead-fork entryを持つセッションの再開が高速化しました。
2026年4月1日のバグ修正
実は2026年4月1日以前は–resumeで重大な問題がありました: セッション再開直後に「deferred tools・MCPサーバー・カスタムエージェント」を使っているユーザーのキャッシュが完全にミスしていたのです。5分以内に再開してもキャッシュが使われず、最初からトークンを消費していました。これはv2.1.90の修正で解決しています(v2.1.69から続いていた不具合・GitHub Issue #42338)。
MCPサーバー起動の最適化:並列接続のデフォルト化
複数のMCPサーバーを使っている場合、v2.1.117の変更が起動時間に影響します。
並列接続のデフォルト化
# プロジェクトの .mcp.json(または ~/.claude.json)でMCPを複数設定している場合
# claude.aiで追加したコネクタ(claude.ai MCPサーバー)はここに書かなくても自動で読み込まれます
{
"mcpServers": {
"local-tools": {
"command": "node",
"args": ["~/.claude/mcp/local-tools/server.js"]
},
"remote-tools": {
"type": "http",
"url": "https://mcp.example.com/mcp"
},
"db-tools": {
"command": "python3",
"args": ["~/.claude/mcp/db-tools/server.py"]
}
}
}
v2.1.117より前は、ローカルMCPサーバーとclaude.ai MCPサーバーへの並列接続は既定ではありませんでした。v2.1.117から並列接続がデフォルトになり、両方を設定している場合の起動が速くなっています。どれだけ短くなるかは、公式の変更履歴に数値がありません。
ToolSearch有効時のキャッシュ改善
v2.1.84でToolSearch(MCPツールの検索機能)が有効な場合のグローバルシステムプロンプトキャッシュが改善されました。
# ToolSearchは既定で有効(設定ファイルに書く項目は無く、止める時だけ環境変数 ENABLE_TOOL_SEARCH=false)
# .mcp.json の設定例
{
"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": "fullscreen"
}
# 元に戻す
/tui default
フルスクリーンの効果
IDE内のターミナルで長時間エージェントタスクを実行すると、通常はフリッカー(画面のちらつき)が発生します。/tui fullscreenはこれを解消し、全画面のフリッカーなしレンダリングに切り替えます。
顧問先のVS Codeを主に使う開発チームでは「これがないと30分以上のタスクが見てられなかった」という声が多かったです。特にCursorユーザーからの反応が大きかった機能です。
フルスクリーンが特に効果的なケース
- 30分以上の長時間エージェントタスク
- 多くのファイルを並列処理するバッチ作業
- CI/CDログのリアルタイム表示
- Monitorツールと組み合わせたリアルタイム監視
この記事の内容を社内で使うなら
要点と手順をまとめた資料を無料で受け取れます。研修4,000名以上・支援100社以上の実績をもとに、自社の業務に当てはめる相談も30分から受け付けています。
企業別コスト最適化ロードマップ
規模と使い方に応じた最適化の優先順位を整理します。
小規模(5名以下のチーム)
# まずENABLE_PROMPT_CACHING_1Hを設定する
export ENABLE_PROMPT_CACHING_1H=1
# ~/.claude/settings.json でフルスクリーン表示を固定
{
"tui": "fullscreen"
}
期待効果: 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:最小キャッシュサイズを下回るプロンプトで期待する
❌ 短いプロンプト(モデルごとの最小トークン数未満)でキャッシュ削減を期待する
⭕ 大きなコードベースコンテキスト・ツール定義・システムプロンプトを先頭に配置してキャッシュに乗せる
# キャッシュが効く設計(コードベースコンテキストを先頭に)
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に送信できます。チームのキャッシュヒット率を週次でモニタリングして、最適化の効果を確認することをお勧めします。
よくある質問
ENABLE_PROMPT_CACHING_1Hとは何ですか?
ENABLE_PROMPT_CACHING_1Hは、Claude Codeのプロンプトキャッシュの有効期限(TTL)を5分から1時間に延ばす環境変数です。Claude Code v2.1.108で追加され、APIキー・Bedrock・Vertex・Foundryのどの経由でも機能します。~/.zshrc などに export ENABLE_PROMPT_CACHING_1H=1 と書いて設定します。
Claude Codeのプロンプトキャッシュは何分で切れますか?
APIキーやBedrock・Vertex・Foundry経由でClaude Codeを使う場合、プロンプトキャッシュは既定で5分で切れます。環境変数 ENABLE_PROMPT_CACHING_1H=1 を設定すると、有効期限が1時間に延びます。会議などで30分席を外した後に戻っても、キャッシュが残った状態で作業を再開できます。
1時間キャッシュと5分キャッシュでは料金がどう違いますか?
1時間キャッシュは、5分キャッシュより書き込みの単価が高くなります。通常の入力トークンに対して、5分キャッシュの書き込みは1.25倍、1時間キャッシュの書き込みは2.0倍です。1時間キャッシュは書き込みコストが高い分だけ削減率は下がりますが、5分以上の間隔が空く作業では1時間キャッシュの方が有効です。
プロンプトキャッシュが効いているかはどこで確認できますか?
プロンプトキャッシュの効き具合は、APIレスポンスの usage にある cache_read_input_tokens で確認できます。cache_read_input_tokens はキャッシュから読み取ったトークン数で、値が大きいほどキャッシュが効いています。Claude Codeでは /usage コマンドでも確認でき、OpenTelemetryを有効にすればチーム全体のキャッシュヒット率を時系列で追えます。
プロンプトキャッシュは何トークンから効きますか?
プロンプトキャッシュが効くのは、モデルによって最小512〜4,096トークン以上のプロンプトです(2026年9月30日時点。Claude Opus 5.5などは512トークン)。最小トークン数より短いプロンプトはキャッシュされません。大きなコードベースのコンテキスト、システムプロンプト、ツール定義を先頭に置くと、キャッシュの対象になります。
参考・出典
- 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.117以降にアップデートする
- 今月中: OpenTelemetryを設定してチーム全体のキャッシュヒット率をダッシュボードで可視化する
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談は お問い合わせフォーム からお気軽にどうぞ。
監修:株式会社Uravation(生成AI活用書籍シリーズ累計59,900部の著者チームが運営。自社7メディアの実運用でAI検索からの引用・流入を継続計測し、その知見に基づいて編集しています。仕様・料金が変わりやすい領域のため、重要な意思決定の前には各公式情報の最新版をご確認ください)
この記事の内容を社内展開する方へ: Claude Code × ビジネス活用 実践ガイド(無料・PDF 30ページ+Excel) をダウンロードできます。




