◉CLAUDE LABEN
●2.1.296 — Sonnet 5.5 のキャッシュ読み取りが $0.10/Mtok に(従来 $0.20)。MCP の説明上限も 4,096 文字になりました●2.1.295 — hook に onFailure: "block" が追加。起動失敗や想定外の終了でも通さず止められます●SONNET 4.5 — Claude API での提供終了は 11/30、残り51日。移行先は Sonnet 5.5●Q&A — 出力を追記するたびにコンソールが履歴の先頭へ戻る、という報告が長く続いています●HAIKU 5.5 — Haiku 4.5 向けコードは budget_tokens が 400 エラーになる点に注意●NEW — 最初の依頼文が毎回ちぐはぐなときは、「仕事の説明」を1枚だけ先に渡す●2.1.296 — Sonnet 5.5 のキャッシュ読み取りが $0.10/Mtok に(従来 $0.20)。MCP の説明上限も 4,096 文字になりました●2.1.295 — hook に onFailure: "block" が追加。起動失敗や想定外の終了でも通さず止められます●SONNET 4.5 — Claude API での提供終了は 11/30、残り51日。移行先は Sonnet 5.5●Q&A — 出力を追記するたびにコンソールが履歴の先頭へ戻る、という報告が長く続いています●HAIKU 5.5 — Haiku 4.5 向けコードは budget_tokens が 400 エラーになる点に注意●NEW — 最初の依頼文が毎回ちぐはぐなときは、「仕事の説明」を1枚だけ先に渡す
記事一覧/Claude Code
⟐ Claude Code/2026-08-26上級

キャッシュのTTLを1時間に延ばすかは、離席の長さではなく戻る場所で決めています

Claude Code v2.1.242 で promptCacheTtl と subagentPromptCacheTtl が追加されました。1時間キャッシュが効く条件は離席時間ではなく、同じ作業ディレクトリと同じ git 状態へ戻るかどうかです。判断の順番と、効いているかを確かめる手順を書き残します。

claude-code132prompt-caching15promptCacheTtlcost-optimization28statusline

✦ プレミアム記事

朝は iOS の壁紙アプリのリポジトリ、昼はウェブ側、夕方にまた Xcode へ戻ります。個人開発で複数のプロダクトを並行させていると、一日のうちに作業ディレクトリを何度も移ります。そのたびに Claude Code が会話の先頭から読み直している気配があって、待たされる時間が積み重なっていました。

Claude Code v2.1.242 で promptCacheTtl と subagentPromptCacheTtl という二つの設定が入りました。プロンプトキャッシュの寿命を5分から1時間へ延ばせる、という説明を読んだとき、私が最初に思ったのは「離席の多い自分の働き方には効きそうだ」でした。

けれど設定を書く前に仕様を追ってみると、判断の軸は離席の長さではありませんでした。キャッシュが生きたまま迎えてくれるかどうかは、どれだけ待ったかよりも、どこへ戻るかで決まります。そして戻る場所が変わっていれば、TTL を何時間に延ばしても一度も読まれません。

つまみは二つ、バケットも二つです

Claude Code は cache_control を自分で置かせてくれません。キャッシュの位置も境界も Claude Code が決めます。利用者が触れるのは、リクエストを二つのバケットに分けたうえでの寿命指定だけです。

バケット含まれるリクエスト設定キー
メイン会話対話ターン、非対話の -p 実行、Agent SDK のターン、およびそれらと同時に走る補助リクエストpromptCacheTtl
それ以外すべてサブエージェント、ワークフロー、チームメイト、fork、コンパクション、セッションタイトル生成subagentPromptCacheTtl

どちらも受け付ける値は 5m と 1h の二つだけで、それ以外は無視されます。30m と書いても弾かれるのではなく、静かに既定へ戻ります。この「知らぬ間に戻る」性質が後で効いてくるので、覚えておいてください。

{
  "promptCacheTtl": "1h",
  "subagentPromptCacheTtl": "5m"
}

そして既定値は、課金の経路によって変わります。

バケットClaude サブスクリプション(プラン内の利用)使用クレジット / API キー / クラウドプロバイダー
メイン会話1時間5分
それ以外すべて5分(サーバー側が制御する一部の補助リクエストのみ1時間)5分

サブスクリプションでプラン内の利用に収まっている間は、メイン会話が自動で1時間になります。プランの上限を超えて使用クレジットに入った時点で、課金が発生するぶん Claude Code は安いほうの5分へ落とします。API キーでサインインしている場合とクラウドプロバイダー経由の場合は、最初から全部5分です。

つまり promptCacheTtl を明示的に書く意味があるのは、API キーまたはクラウドプロバイダーを使っている場合と、サブスクリプションで上限を超えたあとも1時間を維持したい場合の二つです。プラン内で収まっている人が "1h" と書いても、既にそうなっています。

サブエージェントは、契約に関係なく5分から始まります

ここが最初につまずいたところでした。サブスクリプションで作業していると、メイン会話は1時間キャッシュで走っています。ところがサブエージェントを呼んだ瞬間、その子は5分バケットに入ります。並列でファンアウトさせる場面ほど、いちばんキャッシュに助けてほしい側が冷たいまま始まる、という構図です。

理由は仕様を読むと納得できます。サブエージェントは自分専用のシステムプロンプトとツールセットで、親とは別の会話を始めます。プレフィックスが違うので、そもそも親のキャッシュは読めません。自分のターンを重ねる中で自前のキャッシュを温めていくだけです。

fork はここが逆になります。fork は親のシステムプロンプト・ツール・会話履歴をそのまま引き継ぐので、最初のリクエストが親のキャッシュを読みます。同じ「作業を分ける」でも、キャッシュの観点では別物です。/fork と /subtask の性格の違いについては分岐は手元から切り離し、委譲はセッションに残すで整理していますが、キャッシュだけを見ても選択が変わる場面があります。

では subagentPromptCacheTtl も素直に "1h" にすべきかというと、私はここを既定の5分のままにしています。1時間の書き込みは5分の書き込みより高いレートで課金されます。サブエージェントは寿命が短く、数ターンで役目を終えるものが大半です。書き込み代を回収する前に消えていく相手に、高いほうの書き込みを選ぶ理由がありません。

この判断が変わるのは、同じ定義のサブエージェントを1時間以内に何度も呼び直す運用をしているときです。そこだけは、あとで出す損益の式に当てはめてから決めています。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦1時間キャッシュへ延ばす前に、自分の働き方がその恩恵を受けられる形かどうかを判断できるようになる
✦サブエージェントと fork でキャッシュの扱いが分かれる理由を理解して、並列作業の組み立て方を選べるようになる
✦設定したのに効いていない、という数日を回避できる。優先順位と対象外の環境を先に潰す手順が手に入る
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

⟐ Claude Code2026-08-28
名前に混ざった見えない文字を、プラグインを入れる前に洗い出す小さなスクリプト
プラグインやスキルの名前に不可視文字や制御文字が混ざっていても、ターミナルの一覧では見分けがつきません。実際に6つの紛らわしい名前を並べて ls の出力を比べ、導入前に走らせる点検スクリプトと、その点検が拾えない範囲までを整理しました。
⟐ Claude Code2026-06-12
Android の戻るボタン広告ゲートを入れ子から並列独立構造へ — Claude Code と進めた終了フロー再設計の記録
戻るボタンの広告が「出ない」と「出すぎる」を同時に起こした原因は、入れ子分岐に埋め込まれた暗黙の優先度でした。壁紙アプリ v2.1.0 で広告ゲートを並列独立構造へ作り直した過程を、Kotlin実装・Claude Codeへの依頼内容・テストまで含めて記録します。
⟐ Claude Code2026-05-27
壁紙アプリ 2 本の Crashlytics を Claude Code で 11 日間掘り続けた実装ログ
壁紙アプリ 2 本(綺麗な壁紙 v2.0.0 / 浮世絵壁紙 v1.7.0)でリリース後に Crashlytics と Play Console から噴き出した 30 件超のバグを、Claude Code で 11 日間掘り続けて v2.1.1 / v1.8.1 まで仕上げた工程を、スタックトレース → 原因仮説 → 修正コミットの順で公開します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます