原文(日本語に翻訳)
セッション中にツールスキーマのバイトが変化することで引き起こされていた長時間セッションでのプロンプトキャッシュミスを修正しました。
原文(英語)
Fixed prompt cache misses in long sessions caused by tool schema bytes changing mid-session
概要
Claude Codeのプロンプトキャッシュ機能において、長時間のセッション中にツールスキーマのバイト表現がわずかに変化してしまい、キャッシュミスが発生してAPIコールのコストが増大する問題がありました。本来キャッシュされるべきプロンプトが再送信されることで、APIトークンの無駄遣いと遅延が発生していました。v2.1.89でツールスキーマの安定化が図られ、長時間セッションでのキャッシュ効率が向上しました。
基本的な使い方
プロンプトキャッシュは自動的に管理されますが、効果を確認するには:
bash
# キャッシュヒット率を確認する(デバッグモード)
claude --debug "タスクを実行してください"
# API使用量の確認
/stats
# cache_read_input_tokens の値が高いほどキャッシュが効いている実践例
長時間セッションでのキャッシュ効果確認
bash
# 長いセッションでの作業後にstatisticsを確認
/stats
# 出力例(修正後):
# Cache read tokens: 150,000 ← キャッシュから読み込まれたトークン
# Cache write tokens: 5,000 ← 新規にキャッシュされたトークン
# Regular tokens: 10,000 ← キャッシュされなかったトークン
# 修正前: 長時間セッションでは cache_read_tokens が少なかった
# 修正後: キャッシュが効率的に再利用されるコスト最適化への影響
python
# Anthropic API でのプロンプトキャッシュ使用例
import anthropic
client = anthropic.Anthropic()
# ツールスキーマを含むリクエスト
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
tools=[
{
"name": "get_weather",
"description": "Get weather information",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string"}
}
}
}
],
messages=[{"role": "user", "content": "天気を教えてください"}]
)
# 使用量の確認
print(response.usage.cache_read_input_tokens) # キャッシュヒット
print(response.usage.cache_creation_input_tokens) # キャッシュ作成注意点
- プロンプトキャッシュはAnthropicのAPIで自動管理されます
- キャッシュミスはAPIコストの増大とレスポンス速度の低下につながります
- 長時間セッション(30分以上)での影響が大きかったです
- 修正により、MCPサーバーやカスタムツールが多い環境での恩恵が特に大きくなります