AIエージェント開発

Anthropic Prompt Caching完全実装ガイド

Anthropic Prompt Caching完全実装ガイド

この記事の結論

Anthropic Prompt Cachingの仕様(cache_control / 4ブレークポイント / 5分・1時間TTL)とコスト試算、AIエージェントへの組み込みを公式docs準拠で整理する。

長文のSystem Prompt・Tool定義・RAGコンテキストを毎リクエスト送り直すコストに、いま多くのAIエージェント開発者が直面している。Anthropicが提供するPrompt Cachingは、cache_controlブレークポイントを付けるだけで「キャッシュ書き込み=入力単価の1.25倍」「キャッシュ読み出し=入力単価の0.1倍(90%引き)」という非対称な料金体系を作り出す機能で、設計次第でAIエージェントの推論コストを桁単位で削れる。一方、TTL(5分/1時間)・ブレークポイント数(最大4個)・キャッシュ無効化条件など、押さえないと「キャッシュしてるつもりで毎回書き込みコストを払う」失敗が起きやすい。

この記事は、Anthropic公式docsとAnthropic Blogだけを一次ソースに、Prompt CachingをAIエージェント設計に組み込むときの実装パターンとコスト試算を、フレームワークとして整理する。Pattern A4(データ・フレームワーク深掘り型)。

結論ファースト:Prompt Caching設計の5原則

  1. cache_controlは「最も書き換わらない順」に置く。Tool定義 → System → 会話履歴の順で4ブレークポイントを使い切る
  2. 5分TTLが基本。1時間TTLはbeta header必須でwrite単価2倍(1時間=入力単価×2.0、5分=×1.25)
  3. cache hit時の読み出しコストは入力単価の10%。長文context+ループ実行のエージェントほど効く
  4. キャッシュは「prefix完全一致」で効く。1文字でも変わるとそれ以降は全部cache miss扱い
  5. 最小トークン要件あり(Claude Opus/Sonnet=1,024 token / Haiku=2,048 token)。短いSystem Promptはキャッシュされない

以下、これらの根拠を公式docsで一個ずつ確かめながら、AIエージェント側の組み込み方を見ていく。

Prompt Cachingとは何か:Anthropic公式定義

Anthropicの公式ドキュメント「Prompt caching」では、Prompt Cachingを「APIコール間で頻繁に使われるコンテキストをキャッシュすることで、レイテンシとコストを削減する機能」と定義している。要点は3つ。

  • キャッシュ対象は「cache_controlブロックを明示的に付けた位置までのprefix
  • キャッシュはAnthropic側のサーバーに保持される(クライアント側のキャッシュではない)
  • キャッシュヒット時、その範囲のトークンは「cache_read_input_tokens」として通常入力単価の10%で課金される

つまりPrompt Cachingは、開発者から見ると「cache_control: {"type": "ephemeral"}を付けるだけのフラグ」だが、その内部では「コンテンツのhashを取り、prefixが一致するキャッシュエントリがあれば再利用」というふるまいになる。だからこそ「prefixが完全一致しないとキャッシュは効かない」というルールが生まれる。

仕組み:cache_controlブレークポイントとprefix一致

4つのブレークポイントを「どこに置くか」

cache_controlは1リクエストにつき最大4個まで指定できる。各ブレークポイントは「ここまでのprefixをキャッシュ対象にする」という意味を持つ。AIエージェント設計では、書き換わる頻度の少ない順にブレークポイントを並べるのが基本だ。

{
  "model": "claude-sonnet-4-5",
  "max_tokens": 1024,
  "tools": [
    {
      "name": "search_docs",
      "description": "...",
      "input_schema": {...},
      "cache_control": {"type": "ephemeral"}
    }
  ],
  "system": [
    {
      "type": "text",
      "text": "あなたはAIエージェントです... (長文のRole定義)"
    },
    {
      "type": "text",
      "text": "## 社内ナレッジベースn(20,000 token程度のRAG context)",
      "cache_control": {"type": "ephemeral"}
    }
  ],
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "過去ログ要約: ...(履歴)",
          "cache_control": {"type": "ephemeral"}
        },
        {
          "type": "text",
          "text": "今回の質問: 新しい入力"
        }
      ]
    }
  ]
}

この例では3個のブレークポイントを置いた。Tool定義 → System内のRAGコンテキスト → 会話履歴の固定部分、までを全部キャッシュしている。最後の「今回の質問」だけは毎回変わるのでキャッシュ範囲の外。

prefix完全一致のシビアさ

キャッシュは「ブレークポイントまでのバイト列が完全一致した場合のみ」ヒットする。たとえばSystem Promptの先頭に"今は2026年5月27日です。"のような動的タイムスタンプを混ぜると、毎回prefixが変わって全部cache missになる。AIエージェントで「日時を入れたい」「ユーザーIDを混ぜたい」というニーズは多いが、これらはキャッシュ対象の外側に置くか、ブレークポイントより後ろの動的セクションに切り出す設計が必要だ。

最小トークン要件

公式docsには「キャッシュには最小サイズがある」と明記されている。具体的には次の通り。

モデル 最小キャッシュ可能トークン数
Claude Opus 4 / Opus 4.1 1,024 token
Claude Sonnet 4 / Sonnet 4.5 / Sonnet 3.7 / Sonnet 3.5 1,024 token
Claude Haiku 4.5 / Haiku 3.5 / Haiku 3 2,048 token

これ未満のブロックにcache_controlを付けても、リクエストは通るがキャッシュは作られない(API側で無視される)。「短いSystem Promptしか持っていない軽量エージェント」では、Prompt Cachingの恩恵はそもそも出ない。逆に、長大なTool定義+大型RAGを抱えるエージェントほど、効果が指数関数的に伸びる。

TTL:5分と1時間の使い分け

cache_controlにはtypettlの2フィールドがある。デフォルトは5分TTLで、Anthropic公式ドキュメントが「ephemeral」と呼んでいるのもこの5分キャッシュのことだ。

// 5分TTL (default)
{"type": "ephemeral"}

// 1時間TTL (extended, beta header必須)
{"type": "ephemeral", "ttl": "1h"}

1時間TTLを使う場合、HTTPヘッダーにanthropic-beta: extended-cache-ttl-2025-04-11を追加する必要がある(2026年5月時点のbeta状態。GA移行されると不要になる可能性あり)。

料金の非対称性:書き込みコストはTTLで2倍違う

Anthropicの公式料金ページ「Pricing」と「Prompt caching」ドキュメントから、以下の料金構造が読み取れる。

操作 5分TTL 1時間TTL
キャッシュ書き込み(cache_creation_input_tokens) 基本入力単価 × 1.25 基本入力単価 × 2.0
キャッシュ読み出し(cache_read_input_tokens) 基本入力単価 × 0.1 基本入力単価 × 0.1
キャッシュなし通常入力(input_tokens) 基本入力単価 × 1.0 基本入力単価 × 1.0

つまり「1回書き込んで何回読み出すか」がROIを決める。5分TTLなら2回読めば元が取れる(1.25 – 1.0 = 0.25増分を、0.9引きで返却するから0.25 / 0.9 ≒ 0.28回相当でブレークイーブン)。1時間TTLなら約1.12回読めば元が取れる計算になる。

どちらを使うべきか:エージェント運用観点

AIエージェントの実運用を見ると、TTLは次のように使い分けるのが現実的だ。

  • 5分TTL:チャット型エージェント、人間とのリアルタイム対話。連続するターン間は数十秒〜数分なので5分で十分。書き込みコストが抑えられるので「とりあえず全部キャッシュ」できる
  • 1時間TTL:バッチ処理、cron実行、巨大Tool定義を持つ専門エージェント、人間のチームメンバーが断続的に使う社内アシスタント

1時間TTLは「書き込みコストが5分の1.6倍(=2.0/1.25)」高い代わりに、キャッシュ保持期間が12倍になる。エージェントの平均アクセス間隔が「数分以上空く」運用なら、1時間TTLの方がトータルで安くなる。

コスト試算:実数で見るPrompt Cachingの効果

Claude Sonnet 4.5の公式料金(2026年5月時点)を使って、AIエージェントの典型ワークロードで計算してみる。

  • 入力単価: $3 / 1M tokens
  • 出力単価: $15 / 1M tokens
  • キャッシュ書き込み(5分): $3.75 / 1M tokens(=$3 × 1.25)
  • キャッシュ読み出し: $0.30 / 1M tokens(=$3 × 0.1)

ケース1:Tool定義+System Prompt 30,000 tokenを100回再利用

カスタムAIエージェントを想定。Tool定義 25個 + 詳細System Prompt = 合計30,000 token。ユーザーとの会話で100回呼び出される。

項目 キャッシュなし 5分TTLキャッシュあり
初回書き込み 30,000 × $3 / 1M = $0.090 30,000 × $3.75 / 1M = $0.1125
2〜100回目(99回) 30,000 × 99 × $3 / 1M = $8.910 30,000 × 99 × $0.30 / 1M = $0.891
合計 $9.000 $1.004
削減率 約88.8%削減

同じワークロードで5分TTLの再書き込み(=5分以上空いた場合)が10回入ったとしても、削減率は約80%は維持される計算だ。

ケース2:20,000 token RAGコンテキスト × 連続10ターン会話

カスタマーサポート用エージェント。社内マニュアル等を毎ターンSystem PromptにRAGとして注入。1回の会話で10ターン続く。

項目 キャッシュなし 5分TTLキャッシュあり
1ターン目(書き込み) 20,000 × $3 / 1M = $0.060 20,000 × $3.75 / 1M = $0.075
2〜10ターン目(9ターン) 20,000 × 9 × $3 / 1M = $0.540 20,000 × 9 × $0.30 / 1M = $0.054
合計 $0.600 $0.129
削減率 約78.5%削減

ケース3:1時間TTLでバッチ処理(50,000 token context × 1日200回呼び出し)

ナレッジベース検索系のバッチエージェント。1日200回、間隔は10分〜30分。5分TTLだと毎回書き直しになるが、1時間TTLなら持続する。

項目 5分TTL(毎回再書き込み) 1時間TTL
書き込み回数 200回 約24回(1時間に1回)
書き込みコスト 50,000 × 200 × $3.75 / 1M = $37.5 50,000 × 24 × $6.00 / 1M = $7.2
読み出しコスト 0(毎回ミスのため) 50,000 × 176 × $0.30 / 1M = $2.64
合計 $37.5 $9.84

1時間TTLは書き込み単価が2倍だが、アクセス間隔の長いバッチでは結果的に大幅安になる。

AIエージェントへの組み込みパターン

具体的にどう設計に落とし込むかを、3つの典型エージェント類型で見ていく。

パターン1:チャット型エージェント(Sonnet/Opus + 長文System Prompt)

ChatGPT風UIを持つカスタマーサポート/社内Q&A型。Tool定義 + System Prompt + 直近の会話履歴を毎回送る。

  1. Tool定義の末尾に1個目のcache_control
  2. System Prompt(role定義 + RAG context)の末尾に2個目のcache_control
  3. 過去の会話履歴の末尾(=最新ユーザー入力の直前)に3個目のcache_control
  4. 4個目は予備(動的に変わる長文を持つ場合に使う)

このパターンなら、ユーザーがメッセージを送るたびにTool+System+履歴の全部がキャッシュヒットする(5分以内なら)。AIエージェントのコスト最適化原則でも触れたとおり、長期セッションほど効果が累積する。

パターン2:自律実行型エージェント(Agent loop + Tool calling)

Claude Agent SDKやLangGraphで作る自律エージェントは、1つのタスクで10〜50回のLLM呼び出しが入る。毎回のSystem PromptとTool定義は同じだから、Prompt Cachingの効果が極大化する。

Claude Agent SDKの場合、SDK内部で自動的にcache_controlが挿入されるパターンがdocsで言及されている(Agent SDK overview)。具体的な実装はClaude Agent SDK(Python)実装ガイドで詳しく扱った。

from anthropic import Anthropic
client = Anthropic()

# 自律ループの中で同じTool定義+System Promptが何度も再利用される
def agent_step(messages, tools, system):
    return client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=2048,
        system=[
            {
                "type": "text",
                "text": system,
                "cache_control": {"type": "ephemeral"}
            }
        ],
        tools=[
            {**tool, "cache_control": {"type": "ephemeral"}}
            if i == len(tools) - 1 else tool
            for i, tool in enumerate(tools)
        ],
        messages=messages
    )

Tool配列の最後だけにcache_controlを付けるとTool配列全体がキャッシュ対象になる(prefix一致のため)。これでブレークポイントを1個節約できる。

パターン3:Claude Code / Claude Codeベースの開発支援エージェント

Claude CodeはCLAUDE.md + プロジェクトコンテキスト + ツール定義を毎ターン送り直すワークロードを持つ。Claude Code内部ではPrompt Cachingが自動的に有効化されている(Anthropic公式の発表ブログ「Prompt caching with Claude」でも言及)。

つまり開発者がCLAUDE.mdに大量の指示を書いても、2回目以降のターンではキャッシュヒットで90%引きで読まれる。「長いCLAUDE.mdはコストが心配」という認識はPrompt Caching前提のClaude Codeでは古い。むしろ詳細なルールを書いた方が品質も上がりコストも増えない設計になっている。

キャッシュが無効化される条件

公式docsから整理すると、以下のケースでキャッシュは新規書き込み扱いになる。

  • prefixの1文字でも変わる:System Promptの先頭にタイムスタンプを入れる等
  • モデルバージョンを変える:Sonnet 4からSonnet 4.5に切り替えるとキャッシュは別物
  • tool_choiceを変えるautoanyのような切り替え
  • 5分(または1時間)の有効期限を超える:最後のアクセスから時間経過
  • cache_controlを付けたブロックの内容が変わる:当然ながらキャッシュは別物になる

逆に「temperature / top_p / max_tokens / messages末尾の新規入力」は変えてもキャッシュには影響しない。これらはcache_controlで指定したprefixより後ろにあるからだ。

並列リクエストのキャッシュ競合

同じprefixで複数リクエストを並列同時送信した場合、初回は全部キャッシュミス扱いになる可能性がある(まだキャッシュエントリが作られる前にリクエストが届くため)。バッチ起動時は1リクエスト目を投げてから少し待って残りを並列化する、というパターンが安定する。

レスポンスの読み方:cache_creation/cache_read_input_tokens

Prompt Cachingが効いているかは、Messages APIのレスポンスusageフィールドで確認できる。

{
  "usage": {
    "input_tokens": 150,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 28500,
    "output_tokens": 410
  }
}

このレスポンスは「28,500 tokenがキャッシュヒット、150 tokenだけが通常入力、新規書き込みなし」を示している。期待通りキャッシュが効いていれば、ログを取ってモニタリングできる。逆にcache_creation_input_tokensが毎回大きい値を返すなら、prefixが微妙にズレてキャッシュが効いていない疑いがある。

モニタリングTIPS:cache hit率を運用指標にする

本番AIエージェントでは、以下の比率をDatadog/CloudWatch/Slack通知で監視する設計が現実的だ。

  • cache hit ratio: cache_read_input_tokens / (cache_read_input_tokens + cache_creation_input_tokens + input_tokens)
  • cache cost share: cache関連支払い / 全LLM支払い
  • cache miss alert: cache_hit_ratio < 0.5が10分続いたら通知

cache hit ratio が想定より低い時の原因は、たいてい「動的トークンがprefixに混入」「会話履歴のserialization順が不安定」のどちらかだ。AIエージェントのプロンプト設計パターンで紹介した固定部分/動的部分の分離が、ここでも効いてくる。

対応モデルと2026年5月時点の最新状況

2026年5月27日時点で、Prompt Cachingに対応している主なモデルは以下の通り。

モデル 5分TTL 1時間TTL(beta)
Claude Opus 4 / Opus 4.1
Claude Sonnet 4.5 / Sonnet 4 / Sonnet 3.7 / Sonnet 3.5
Claude Haiku 4.5
Claude Haiku 3.5 / Haiku 3
Claude Opus 3 (legacy) ○(限定)

新規モデルがリリースされる際は、Anthropic公式のModels overviewに対応リストが更新される。エージェントを設計するときは、運用するモデルがPrompt Caching対応かを最初に確認しておくのが安全だ。

Vertex AI / Amazon Bedrock経由の場合

GCPのVertex AIやAWS Bedrock経由でClaudeを使う場合、Prompt Cachingのサポート状況はプラットフォーム依存になる。最新の対応状況は各クラウドベンダーのdocsを確認するのが確実だが、AnthropicのMessages API直接コールのほうが機能反映が早いという一般的な傾向はある。

よくある失敗パターン

失敗1:System Promptの先頭に日時を入れる

「今日は{{date}}です」をSystem Promptの冒頭に入れると、毎日(またはミリ秒単位だと毎回)prefixが変わって全部cache missになる。日時を入れたい場合はcache_control境界より後ろに置く。

失敗2:会話履歴をJSON.stringify()でserializeしてオブジェクト順がブレる

会話履歴をJSONとして再生成する時、キーの順序が実行ごとに変わるとprefixが一致しない。Python標準のjson.dumps(obj, sort_keys=True)のようにキー順を固定する習慣をつける。

失敗3:ブレークポイントを4個全部使ってしまい、増設できない

「とりあえず4個全部付ける」は実は危険。途中で「中間のあるブロックだけ変わる」要件が出ると、4個では足りなくなる。最初は2〜3個に抑えて、運用しながら追加するのが現実的。

失敗4:短いSystem Promptにcache_controlを付けて「効いてるつもり」になる

1,024 token(Haikuは2,048 token)未満のブロックにcache_controlを付けてもキャッシュは作られない。レスポンスのusage.cache_creation_input_tokensがゼロのままなら、最小トークン要件を満たしていない可能性が高い。

失敗5:Tool定義を毎回動的生成して順番がブレる

Toolリストの順番が毎回違うとprefixが変わる。「ユーザーの権限で表示する/しない」を切り替えるなら、全Toolを定義した上でtool_choiceを使って制御するか、ユーザー権限ごとにcacheを分けて使う。

キャッシュ階層設計の応用:マルチテナント・マルチユーザー対応

BtoB SaaS型のAIエージェントを設計するとき、テナント(顧客企業)ごとに異なるRAGコンテキストや権限制御が必要になる。Prompt Cachingのprefix一致ルールをそのまま適用すると、テナント単位でキャッシュが分かれることになり、キャッシュ書き込みコストがテナント数に比例して増える。これをどう設計するかは、本番運用の重要な分岐点だ。

テナント共通部分とテナント固有部分の分離

具体的には、System Promptを「全テナント共通の役割定義」と「テナント固有のRAG・ルール」に分け、ブレークポイントを2段階に置く設計が有効になる。

system: [
  {
    "type": "text",
    "text": "あなたは{{product_name}}のAIエージェントです... (全顧客共通)",
    "cache_control": {"type": "ephemeral"}  // ← ブレークポイント1: 全顧客で共有可能
  },
  {
    "type": "text",
    "text": "## 顧客{{tenant_id}}固有のナレッジn(テナント固有RAG)",
    "cache_control": {"type": "ephemeral"}  // ← ブレークポイント2: テナント単位
  }
]

こうしておくと、ブレークポイント1までは「全顧客の最初の問い合わせで書き込まれたキャッシュを、別の顧客の問い合わせでも共有できる」効果が出る(prefixが完全一致しているため)。これはAnthropicの公式docs「Prompt caching」セクションでも触れられている挙動で、自分のorganization内であれば、キャッシュは複数リクエストで共有される。

テナント別RAGはキャッシュ書き込みコストを計画する

テナント固有のRAGは、テナント数だけキャッシュ書き込みが発生する。たとえばRAG 20,000 token × テナント100社 = 200万tokenの書き込みが、5分TTLで使い切られると毎時繰り返される計算になる。これは「アクティブテナント数を絞る」「テナントRAGは1時間TTLにする」のどちらかで吸収するのが現実的だ。

Extended caching(1時間TTL)の本格運用ノウハウ

1時間TTLを本格運用するときに、書き込みコスト×2.0倍を吸収できるかは、アクセス回数と間隔次第になる。具体的なシミュレーションをいくつかのパターンで見てみる。

シナリオA: 1時間に5回アクセスされるエージェント

30,000 tokenのcontextを1時間TTLでキャッシュ。書き込みコストは 30,000 × $6.00 / 1M = $0.180。残り4回の読み出しコストは 30,000 × 4 × $0.30 / 1M = $0.036。合計$0.216。同じワークロードをキャッシュなしで動かすと 30,000 × 5 × $3 / 1M = $0.450。約52%削減。

シナリオB: 1時間に20回アクセスされるエージェント

書き込み$0.180 + 読み出し 30,000 × 19 × $0.30 / 1M = $0.171。合計$0.351。キャッシュなしなら 30,000 × 20 × $3 / 1M = $1.800。約80%削減。

シナリオC: 1時間に2回しかアクセスされないエージェント

書き込み$0.180 + 読み出し 30,000 × 1 × $0.30 / 1M = $0.009。合計$0.189。キャッシュなしなら 30,000 × 2 × $3 / 1M = $0.180。1時間TTLの方がわずかに高い。このパターンでは1時間TTLを使う意味がない(5分TTLで2回読めれば良い)。

つまり1時間TTLは「1時間あたり3回以上のアクセスが見込めるなら勝ち」というのが、おおまかな目安になる。アクセスパターンが予測できないエージェントでは、まず5分TTLで運用して、Datadog等で実アクセス頻度を確認してから切り替えるのが安全だ。

セキュリティとプライバシー:キャッシュ越しに他人のデータが見えることはあるか

Prompt Cachingで頻繁に問われる懸念が「自分のキャッシュが他社に見えてしまわないか」だ。Anthropic公式docsの「Prompt caching」セクションでは、以下の3点が明記されている。

  • キャッシュはorganization単位で隔離される(自分のorgのキャッシュが他orgから見えることはない)
  • キャッシュ内容はTTL満了で自動削除される
  • cacheはモデルの学習データとしては使われない(通常のAPI呼び出しと同じデータ取り扱い)

つまり、同じorganizationの中で複数のチーム・複数のAIエージェントがPrompt Cachingを使う場合、キャッシュは内部で共有されうる(prefixが一致すれば)。これはコスト面ではメリットだが、組織内で機密情報を扱うエージェント同士はcache_controlを明示的に分けるか、API Keyを分離するなどの設計を検討した方が良い。

運用設計:本番AIエージェントのPrompt Caching設計テンプレート

ここまでの話をまとめると、本番運用するAIエージェントのPrompt Caching設計は次のテンプレートに落とせる。

  1. レイヤー分離:Tool定義 / System role / RAG context / 会話履歴 / 動的入力、の5層に明確に分ける
  2. cache_controlを上から3層に置く:Tool末尾、System末尾(またはRAG末尾)、会話履歴末尾
  3. 動的部分は最後に集める:日時・ユーザーID・今回の質問、すべて最後のmessageに
  4. TTLはユースケースで選ぶ:人間のリアルタイム対話は5分、バッチ/cron/間隔の空く運用は1時間
  5. cache hit ratioを監視:0.7以下に落ちたら設計を再確認
  6. モデル切替時は最初の数十分はキャッシュコスト増を許容:書き込み単価×1.25 or ×2が一気に出る

このテンプレートを守れば、AIエージェントの推論コストはほぼ確実に半分以下まで落とせる。長文contextを使うエージェントなら70-90%減も普通に出る。

まとめ:Prompt Cachingは「設計でコストが決まる」機能

Prompt Cachingは「フラグを付けるだけ」の単純な機能に見えて、実際には「prefix完全一致」「最小トークン要件」「TTL選択」「ブレークポイント4個の配置」が絡む設計問題になっている。AIエージェントを本番運用する以上、ここを最適化できれば月額の推論コストは桁単位で動く。

逆に、設計が雑だと「キャッシュしてるつもりで実は毎回書き込みコストを払っている」「prefixが微妙にズレてcache miss」「短すぎてキャッシュされていない」といった見えにくい損失が積み上がる。本記事のチェックリストと試算を、自社のエージェント設計レビューに使ってほしい。

関連: AIエージェント運用コストの最適化7原則Claude Agent SDK(Python)で自律エージェントを実装するAIエージェントのプロンプト設計パターン

FAQ

Q. Prompt Cachingに追加料金は発生しますか?

追加の月額料金は発生しません。キャッシュ書き込みは入力単価の1.25倍(1時間TTLは2.0倍)、読み出しは0.1倍として、通常のtoken課金体系の中で精算されます。

Q. cache_controlを付けたのに効きません。

(1)最小トークン数(Opus/Sonnet=1,024 / Haiku=2,048)を満たしているか、(2)prefixが完全一致しているか(日時・ランダム値の混入)、(3)モデルバージョン・tool_choiceを変えていないか、を順に確認してください。レスポンスのusage.cache_creation_input_tokenscache_read_input_tokensで診断できます。

Q. 1時間TTLはいつ使うべきですか?

呼び出し間隔が「5分以上空くことが多い」運用のとき。バッチ処理、cron、間欠的な社内アシスタント、夜間のバックグラウンドエージェントなどです。リアルタイムチャットなら5分TTLで十分です。

Q. Claude Codeを使うとPrompt Cachingは自動で効きますか?

はい。Anthropic公式のClaude Code(およびAgent SDK)では、内部的にcache_controlが自動挿入される実装になっています。CLAUDE.mdに大量の指示を書いても、2ターン目以降はキャッシュヒットで90%引きの単価になります。

Q. キャッシュ内容はAnthropic側に永続保存されますか?

いいえ。5分(または1時間)のTTLで自動消滅します。Anthropic公式docsで明記されている通り、Prompt Cachingは短期キャッシュであり、長期保存・学習目的での利用はされません。データ取り扱いはAnthropicのCommercial Termsに準じます。

この記事を読んで導入イメージが固まってきた方へ

UravationではAIエージェント導入の研修・コンサルを行っています。Prompt Cachingを含むコスト最適化、Claude Agent SDKを使った自律エージェント実装、本番運用のモニタリング設計まで、開発組織への伴走支援を提供しています。


本記事はAnthropic公式ドキュメント(docs.anthropic.com)、Anthropic Pricingページ、Anthropic Blogを一次ソースとして執筆しています。料金・仕様は2026年5月27日時点のものであり、最新情報はAnthropic公式サイトをご確認ください。

著者: 佐藤傑(さとう・すぐる)|株式会社Uravation代表取締役。X(@SuguruKun_ai)フォロワー約10万人。著書『AIエージェント仕事術』。

Need help moving from reading to rollout?

この記事を読んで導入イメージが固まってきた方へ

Uravationでは、AIエージェントの要件整理、PoC設計、社内導入、研修まで一気通貫で支援しています。

この記事をシェア

X Facebook LINE

※ 本記事の情報は2026年5月時点のものです。サービスの料金・仕様は変更される可能性があります。最新情報は各サービスの公式サイトをご確認ください。

関連記事