いずみこんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「Claude APIの利用料金が高くなってきたので、Prompt Cachingで安くしたい」とお考えではありませんか?
長いシステムプロンプトや大きなドキュメントを毎回送っていると、入力トークン量がかさんで料金が膨らみます。
Prompt Cachingを使うと、繰り返し送る部分をキャッシュして入力コストを最大90%削減できます。



レイテンシも短くなるので、体感速度が上がります。
ということで、本記事ではClaude APIのPrompt Cachingでコストを削減する方法を解説します。



すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
Claude APIのPrompt Cachingでコストを削減する方法
早速ですが、Claude APIのPrompt Cachingでコストを削減する方法を解説していきます。
Prompt Cachingの仕組み
Prompt Cachingは、プロンプトの先頭からある地点までを丸ごとキャッシュに保存する機能です。
2回目以降のリクエストで、キャッシュした地点までの内容が完全に一致していれば、一致した範囲はキャッシュから読み込まれます。
キャッシュ読み込み時の料金は、通常の入力トークンの10%まで下がります。
一方、キャッシュへの書き込みが発生したリクエストは、通常の入力トークンの25%増しになります。
つまり同じ内容を3回以上使い回す場面で、コスト面のメリットが出ます。



1回しか使わないプロンプトをキャッシュすると、書き込みコストのぶん逆に高くつきます。
キャッシュできる条件
キャッシュには最小トークン数の条件があります。
Claude Sonnet 5では、キャッシュ対象の範囲が1024トークン以上ないとキャッシュされません。
最小トークン数に満たない場合はエラーにはならず、単にキャッシュが効きません。
キャッシュの有効期限は標準で5分、オプションで1時間を選べます。
5分の有効期限は、キャッシュが使われるたびに無料で延長されます。
システムプロンプトをキャッシュする
一番効果が出やすいのは、毎回同じ長いシステムプロンプトをキャッシュするパターンです。
pip install anthropicAPIキーは環境変数 ANTHROPIC_API_KEY に設定しておきます。
import anthropic
client = anthropic.Anthropic()
SYSTEM_PROMPT = """(ここに数千トークンぶんの前提知識やルールを書く)"""
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system=[
{
"type": "text",
"text": SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"},
}
],
messages=[
{"role": "user", "content": "契約書の要点を3つ挙げて"},
],
)
print(response.content[0].text)systemを文字列ではなく、テキストブロックの配列で渡すのがポイントです。
配列の最後のブロックに cache_control を付けると、付けたブロックまでがキャッシュ対象になります。
usage = response.usage
print("cache write:", usage.cache_creation_input_tokens)
print("cache read :", usage.cache_read_input_tokens)
print("input :", usage.input_tokens)1回目のレスポンスでは cache_creation_input_tokens にトークン数が入り、cache_read_input_tokens は0です。
5分以内に同じ内容で2回目を投げると、cache_read_input_tokens に値が入り、cache_creation_input_tokens は0になります。



cache_read 側にトークンが乗っていれば、キャッシュが効いている証拠です。
ツール定義や会話履歴をキャッシュする
cache_control はsystemだけでなく、toolsやmessagesのブロックにも付けられます。
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=[
{
"name": "get_weather",
"description": "天気を取得する",
"input_schema": {"type": "object", "properties": {}},
},
{
"name": "search_docs",
"description": "社内ドキュメントを検索する",
"input_schema": {"type": "object", "properties": {}},
"cache_control": {"type": "ephemeral"},
},
],
messages=[
{"role": "user", "content": "東京の天気は?"},
],
)toolsの最後の定義に cache_control を付けると、ツール定義全体がキャッシュされます。
長いRAGの参考文書をユーザーメッセージに含める場合も、同じブロックに cache_control を付けます。
キャッシュの区切りは、1リクエストにつき最大4つまで指定できます。
1時間の有効期限を使う
5分では短すぎる場合、ttl に 1h を指定すると1時間キャッシュが保持されます。
system=[
{
"type": "text",
"text": SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral", "ttl": "1h"},
}
]1時間の有効期限を指定したキャッシュ書き込みは、通常の入力トークンの2倍の料金になります。
数十分おきに同じプロンプトを使うバッチ処理では、1時間の有効期限のほうがヒット率が上がってトータルで安くなります。



アクセス頻度が高いなら5分、間隔が空くなら1時間、と使い分けます。
削減効果を見積もる
キャッシュ対象が2000トークン、生成が短いリクエストを1日1000回投げるケースを考えます。
キャッシュなしなら、毎回2000トークンぶんの入力料金がかかります。
キャッシュありなら、1回目だけ25%増しの書き込み、残り999回は10%の読み込み料金で済みます。
入力ぶんのコストは、おおよそ9割前後を削減できる計算です。
レイテンシも、キャッシュが効くと最初のトークンが返るまでの時間が短くなります。
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
【厳選】フリーランスエンジニアにおすすめなエージェント3選


フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。
僕が実際に利用しているおすすめエージェントを紹介しますね。



エージェントは必ず複数登録してください。
担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…
僕は実際に5つのエージェントを使い回していますよ。
フリーランスを始めるなら「レバテックフリーランス


」
- 業界最大級の案件数。
- 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
- 案件参画中のフォローの充実。
※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。
レバテックフリーランス
![]()
![]()
とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!



僕もはじめてフリーランスの案件を貰ったのはレバテックフリーランス
![]()
![]()
保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。
手厚い保障を重視したいなら「Midworks


」
- 手厚い保障で正社員並みの安心感。
- 還元率60%超え&単価公開でクリアな契約。
- 給与保障制度(審査あり)。
Midworks
![]()
![]()
フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。



僕も何度か案件を紹介してもらいました。
自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。
週2〜3日の案件探しなら「ITプロパートナーズ


」
- IT案件に特化したフリーランスエージェント。
- 週2〜3日の案件が豊富。
- リモート案件が多く、直エンドなので単価も高い。
※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。
ITプロパートナーズ
![]()
![]()
週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。



週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。
とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!
よくある質問
キャッシュはどのくらいで消えますか?
標準の有効期限は5分で、最後に使われてから5分間アクセスがないと消えます。
ttl に 1h を指定すると、1時間まで延ばせます。
プロンプトを少しでも変えるとキャッシュは無効になりますか?
cache_control を付けた地点までの内容が1文字でも違うと、キャッシュはヒットしません。
変わりやすい部分は、キャッシュ範囲より後ろに置くのが基本です。
どのモデルでPrompt Cachingを使えますか?
現行のClaudeモデルは基本的にすべて対応しています。
ただしモデルごとにキャッシュできる最小トークン数が異なり、Claude Sonnet 5は1024トークンです。
キャッシュを使うと必ず安くなりますか?
同じ内容を3回以上使い回す場合に安くなります。
1〜2回しか使わないプロンプトは、書き込みコストのぶん割高になることがあります。
まとめ
今回は、Claude APIのPrompt Cachingでコストを削減する方法について解説しました。
以下が本記事のまとめになります。



最後までお読みいただき、ありがとうございました!
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。








