28 28
29会話レイヤーへの変更は、システムプロンプトとプロジェクトコンテキストをキャッシュされたままにします。システムプロンプトへの変更は、すべての後続コンテンツが異なるプリフィックスの後ろに配置されるようになるため、すべてを無効にします。3 番目の列は、完全なリストではなく一般的なトリガーを示しており、以下のセクションで完全なセットについて説明します。29会話レイヤーへの変更は、システムプロンプトとプロジェクトコンテキストをキャッシュされたままにします。システムプロンプトへの変更は、すべての後続コンテンツが異なるプリフィックスの後ろに配置されるようになるため、すべてを無効にします。3 番目の列は、完全なリストではなく一般的なトリガーを示しており、以下のセクションで完全なセットについて説明します。
30 30
31プリフィックスマッチルールは、このページのほとんどの動作を説明しています。たとえば、[plan モード](/docs/ja/permission-modes.md#analyze-before-you-edit-with-plan-mode) と [スキル読み込み](/docs/ja/skills.md) は、その命令を会話メッセージとして追加するため、キャッシュされたプリフィックスはそのままです。31プリフィックスマッチルールは、このページのほとんどの動作を説明しています。たとえば、[plan モード](https://code.claude.com/docs/ja/permission-modes.md#analyze-before-you-edit-with-plan-mode) と [スキル読み込み](https://code.claude.com/docs/ja/skills.md) は、その命令を会話メッセージとして追加するため、キャッシュされたプリフィックスはそのままです。
32 32
33レイヤーテーブルに表示されないが、キャッシュされたままになるものに影響する 2 つの設定があります。33レイヤーテーブルに表示されないが、キャッシュされたままになるものに影響する 2 つの設定があります。
34 34
43 43
44キャッシングはサーバー側で行われ、モデルを提供するインフラストラクチャで行われます。その場所は、認証方法によって異なります。44キャッシングはサーバー側で行われ、モデルを提供するインフラストラクチャで行われます。その場所は、認証方法によって異なります。
45 45
46* **API キー、Claude サブスクリプション、または [Claude Platform on AWS](/docs/ja/claude-platform-on-aws.md)**:キャッシュは Anthropic のインフラストラクチャに存在し、[Claude API](https://platform.claude.com/docs) を通じてアクセスされます。46* **API キー、Claude サブスクリプション、または [Claude Platform on AWS](https://code.claude.com/docs/ja/claude-platform-on-aws.md)**:キャッシュは Anthropic のインフラストラクチャに存在し、[Claude API](https://platform.claude.com/docs) を通じてアクセスされます。
47* **Amazon Bedrock または Google Cloud の Agent Platform**:キャッシュはクラウドプロバイダーのサービングインフラストラクチャに存在します。47* **Amazon Bedrock または Google Cloud の Agent Platform**:キャッシュはクラウドプロバイダーのサービングインフラストラクチャに存在します。
48* **Microsoft Foundry**:デプロイの [ホスティングオプション](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) によって異なります。Hosted on Azure のデプロイは Azure インフラストラクチャで提供されます。Hosted on Anthropic のデプロイは Anthropic のインフラストラクチャで提供されます。48* **Microsoft Foundry**:デプロイの [ホスティングオプション](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) によって異なります。Hosted on Azure のデプロイは Azure インフラストラクチャで提供されます。Hosted on Anthropic のデプロイは Anthropic のインフラストラクチャで提供されます。
49* **カスタム `ANTHROPIC_BASE_URL` または [LLM ゲートウェイ](/docs/ja/llm-gateway)**:キャッシュはリクエストが転送される場所に存在し、キャッシングが機能するかどうかはゲートウェイに依存します。49* **カスタム `ANTHROPIC_BASE_URL` または [LLM ゲートウェイ](https://code.claude.com/docs/ja/llm-gateway)**:キャッシュはリクエストが転送される場所に存在し、キャッシングが機能するかどうかはゲートウェイに依存します。
50 50
51Claude Code は会話中にシステムコンテキスト(ファイル変更通知など)も追加し、[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities) を設定しない限り、すべてのプロバイダーと接続でそのブロックをキャッシング用にマークします。その場合、そのブロックはキャッシュなしで送信されます。51Claude Code は会話中にシステムコンテキスト(ファイル変更通知など)も追加し、[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](https://code.claude.com/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities) を設定しない限り、すべてのプロバイダーと接続でそのブロックをキャッシング用にマークします。その場合、そのブロックはキャッシュなしで送信されます。
52 52
53プロバイダー独自のエンドポイント、Amazon Bedrock とその [Mantle エンドポイント](/docs/ja/amazon-bedrock.md#use-the-mantle-endpoint)、Google Cloud の Agent Platform、および Microsoft Foundry では、Claude API と同じ方法でブロックをキャッシュします。53プロバイダー独自のエンドポイント、Amazon Bedrock とその [Mantle エンドポイント](https://code.claude.com/docs/ja/amazon-bedrock.md#use-the-mantle-endpoint)、Google Cloud の Agent Platform、および Microsoft Foundry では、Claude API と同じ方法でブロックをキャッシュします。
54 54
55リクエストが [LLM ゲートウェイ](/docs/ja/llm-gateway)、カスタム `ANTHROPIC_BASE_URL`、または [`ANTHROPIC_BEDROCK_BASE_URL`](/docs/ja/env-vars) などのクラウドプロバイダーベース URL の上書きを通過する場合、キャッシュされたままになるものは、ゲートウェイが Claude Code が送信する [`cache_control` マーカー](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) をどのように処理するかに依存します。55リクエストが [LLM ゲートウェイ](https://code.claude.com/docs/ja/llm-gateway)、カスタム `ANTHROPIC_BASE_URL`、または [`ANTHROPIC_BEDROCK_BASE_URL`](https://code.claude.com/docs/ja/env-vars) などのクラウドプロバイダーベース URL の上書きを通過する場合、キャッシュされたままになるものは、ゲートウェイが Claude Code が送信する [`cache_control` マーカー](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) をどのように処理するかに依存します。
56 56
57* **変更されずに転送する**:ブロックと会話は、プロバイダー独自のエンドポイントと同じようにキャッシュされます。57* **変更されずに転送する**:ブロックと会話は、プロバイダー独自のエンドポイントと同じようにキャッシュされます。
58* **`cache_control` という名前の `400` エラーでマークされたリクエストを拒否する**:Claude Code はマーカーをブロックから最後の会話メッセージに移動させてリクエストを再送信し、Claude Code が終了するまでそこに保持します。ブロックはキャッシュなし入力として請求されます。会話はキャッシュされたままです。58* **`cache_control` という名前の `400` エラーでマークされたリクエストを拒否する**:Claude Code はマーカーをブロックから最後の会話メッセージに移動させてリクエストを再送信し、Claude Code が終了するまでそこに保持します。ブロックはキャッシュなし入力として請求されます。会話はキャッシュされたままです。
59* **マーカーを削除して成功を返す**:会話履歴全体は、毎ターン、キャッシュなし入力として請求されます。ブロック形式のシステムコンテンツをプレーン文字列に変換するゲートウェイは、同じ方法でマーカーをドロップします。59* **マーカーを削除して成功を返す**:会話履歴全体は、毎ターン、キャッシュなし入力として請求されます。ブロック形式のシステムコンテンツをプレーン文字列に変換するゲートウェイは、同じ方法でマーカーをドロップします。
60 60
61各プロバイダーが保存および処理するものについては、[データ使用](/docs/ja/data-usage.md) を参照してください。キャッシュがどこに存在するかに関係なく、エントリは非アクティブ期間後に期限切れになり、以下の [キャッシュの有効期間](#cache-lifetime) では TTL とそれを延長する方法について説明しています。61各プロバイダーが保存および処理するものについては、[データ使用](https://code.claude.com/docs/ja/data-usage.md) を参照してください。キャッシュがどこに存在するかに関係なく、エントリは非アクティブ期間後に期限切れになり、以下の [キャッシュの有効期間](#cache-lifetime) では TTL とそれを延長する方法について説明しています。
62 62
63## キャッシュを無効化するアクション63## キャッシュを無効化するアクション
64 64
76 76
77### モデルの切り替え77### モデルの切り替え
78 78
79各モデルには独自のキャッシュがあります。[`/model`](/docs/ja/model-config#setting-your-model) で切り替えると、コンテンツが同じであっても、次のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。79各モデルには独自のキャッシュがあります。[`/model`](https://code.claude.com/docs/ja/model-config#setting-your-model) で切り替えると、コンテンツが同じであっても、次のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。
80 80
81ターミナルで `/model` を実行すると、キャッシュがまだ温かく、新しいモデルが最後の応答を生成したモデルではない場合にのみ、Claude Code はスイッチの確認を求めます。キャッシュは、Claude Code がこの会話で最後にリクエストを送信した後、または Claude が最後に応答した後、1 つの [キャッシュ TTL](#cache-lifetime) の間、温かいままです。その時間が経過すると、キャッシュは期限切れになるため、Claude Code は確認なしで切り替えます。81ターミナルで `/model` を実行すると、キャッシュがまだ温かく、新しいモデルが最後の応答を生成したモデルではない場合にのみ、Claude Code はスイッチの確認を求めます。キャッシュは、Claude Code がこの会話で最後にリクエストを送信した後、または Claude が最後に応答した後、1 つの [キャッシュ TTL](#cache-lifetime) の間、温かいままです。その時間が経過すると、キャッシュは期限切れになるため、Claude Code は確認なしで切り替えます。
82 82
83v2.1.238 より前では、Claude Code はキャッシュ TTL をチェックせず、キャッシュが期限切れになった後でも確認を求めていました。83v2.1.238 より前では、Claude Code はキャッシュ TTL をチェックせず、キャッシュが期限切れになった後でも確認を求めていました。
84 84
85[PreModelSwitch フック](/docs/ja/hooks.md#premodelswitch-decision-control) を使用して、この確認を必須にするか、スキップすることもできます。85[PreModelSwitch フック](https://code.claude.com/docs/ja/hooks.md#premodelswitch-decision-control) を使用して、この確認を必須にするか、スキップすることもできます。
86 86
87[`opusplan` モデル設定](/docs/ja/model-config#opusplan-model-setting) は、plan モード中は Opus に、実行中は Sonnet に解決されるため、各 plan モード切り替えはモデルスイッチであり、新しいキャッシュを開始します。87[`opusplan` モデル設定](https://code.claude.com/docs/ja/model-config#opusplan-model-setting) は、plan モード中は Opus に、実行中は Sonnet に解決されるため、各 plan モード切り替えはモデルスイッチであり、新しいキャッシュを開始します。
88 88
89Fable モデル、Opus 5.5、Sonnet 5.5、および Opus 5 の [自動モデルフォールバック](/docs/ja/model-config.md#automatic-model-fallback) もモデルスイッチです。安全分類器がフォールバックモデルを持つカテゴリーでリクエストを警告すると、Claude Code はそのモデルでリクエストを再実行し、セッションはそこで続行されます。89Fable モデル、Opus 5.5、Sonnet 5.5、および Opus 5 の [自動モデルフォールバック](https://code.claude.com/docs/ja/model-config.md#automatic-model-fallback) もモデルスイッチです。安全分類器がフォールバックモデルを持つカテゴリーでリクエストを警告すると、Claude Code はそのモデルでリクエストを再実行し、セッションはそこで続行されます。
90 90
91スキルまたはコマンドのフロントマターがセッションの現在のモデル以外の [`model`](/docs/ja/skills#frontmatter-reference) を指定する場合、そのターンもモデルスイッチです。次のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。セッションモデルは次のプロンプトで再開されます。`context: fork` スキルは、代わりに [フォークされたサブエージェントのモデル](/docs/ja/skills.md#run-skills-in-a-subagent) を設定します。91スキルまたはコマンドのフロントマターがセッションの現在のモデル以外の [`model`](https://code.claude.com/docs/ja/skills#frontmatter-reference) を指定する場合、そのターンもモデルスイッチです。次のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。セッションモデルは次のプロンプトで再開されます。`context: fork` スキルは、代わりに [フォークされたサブエージェントのモデル](https://code.claude.com/docs/ja/skills.md#run-skills-in-a-subagent) を設定します。
92 92
93### effort レベルの変更93### effort レベルの変更
94 94
95ほとんどのモデルでは、セッション中に [effort レベル](/docs/ja/model-config.md#adjust-effort-level) を変更すると、次のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。キャッシュがまだ温かい間、Claude Code は最初に変更を確認するよう求めます。95ほとんどのモデルでは、セッション中に [effort レベル](https://code.claude.com/docs/ja/model-config.md#adjust-effort-level) を変更すると、次のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。キャッシュがまだ温かい間、Claude Code は最初に変更を確認するよう求めます。
96 96
97API キーまたは Claude サブスクリプションを使用する Opus 5.5、Sonnet 5.5、Haiku 5.5、および Fable 5.1 では、effort を変更してもキャッシュが保持され、Claude Code は確認なしに新しいレベルを適用します。これは Amazon Bedrock、Google Cloud の Agent Platform、または [Claude アプリゲートウェイ](/docs/ja/claude-apps-gateway) には適用されません。また、[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities) を設定した場合、または組織が HIPAA 構成を持つ場合にも適用されません。97API キーまたは Claude サブスクリプションを使用する Opus 5.5、Sonnet 5.5、Haiku 5.5、および Fable 5.1 では、effort を変更してもキャッシュが保持され、Claude Code は確認なしに新しいレベルを適用します。これは Amazon Bedrock、Google Cloud の Agent Platform、または [Claude アプリゲートウェイ](https://code.claude.com/docs/ja/claude-apps-gateway) には適用されません。また、[`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](https://code.claude.com/docs/ja/llm-gateway-protocol#disable-pre-release-capabilities) を設定した場合、または組織が HIPAA 構成を持つ場合にも適用されません。
98 98
99v2.1.260 より前では、API キーまたは Claude サブスクリプションを使用する Fable 5.1 の effort を変更すると、キャッシュも無効化されていました。99v2.1.260 より前では、API キーまたは Claude サブスクリプションを使用する Fable 5.1 の effort を変更すると、キャッシュも無効化されていました。
100 100
101### fast mode のオン101### fast mode のオン
102 102
103[fast mode](/docs/ja/fast-mode.md) を有効にすると、キャッシュキーの一部であるリクエストヘッダーが追加されるため、Claude Code が fast mode をオンにして送信する最初のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。Claude Code はターンの開始時にそのヘッダーを 1 回設定し、ターン全体でそれを保持するため、Claude が作業中に fast mode をオンにすると、ヘッダーからのキャッシュミスは次のターンの最初のリクエストで発生します。これらのキャッシュされていない入力トークンは [fast mode の料金](/docs/ja/fast-mode.md#understand-the-cost-tradeoff) で請求されます。これが、セッションの開始時に fast mode をオンにすることが、長いセッションの深くでオンにすることより低コストである理由です。現在のモデルが fast mode をサポートしていない場合、fast mode を有効にすると [モデルも切り替わり](#switching-models)、そのスイッチ自体が実行中のターンの次のリクエストから新しいキャッシュを開始します。103[fast mode](https://code.claude.com/docs/ja/fast-mode.md) を有効にすると、キャッシュキーの一部であるリクエストヘッダーが追加されるため、Claude Code が fast mode をオンにして送信する最初のリクエストはキャッシュヒットなしで会話履歴全体を読み込みます。Claude Code はターンの開始時にそのヘッダーを 1 回設定し、ターン全体でそれを保持するため、Claude が作業中に fast mode をオンにすると、ヘッダーからのキャッシュミスは次のターンの最初のリクエストで発生します。これらのキャッシュされていない入力トークンは [fast mode の料金](https://code.claude.com/docs/ja/fast-mode.md#understand-the-cost-tradeoff) で請求されます。これが、セッションの開始時に fast mode をオンにすることが、長いセッションの深くでオンにすることより低コストである理由です。現在のモデルが fast mode をサポートしていない場合、fast mode を有効にすると [モデルも切り替わり](#switching-models)、そのスイッチ自体が実行中のターンの次のリクエストから新しいキャッシュを開始します。
104 104
105コストは会話ごとに 1 回適用されます。最初の fast mode ターンの後、Claude Code はヘッダーを送信し続け、キャッシュキーの一部ではないリクエストの速度設定のみを変更します。fast mode をオフにすること、[レート制限後の標準速度への自動フォールバック](/docs/ja/fast-mode.md#handle-rate-limits)、およびその後にオンに戻すことはすべてキャッシュを保持します。セッション中に [使用クレジットが不足した](/docs/ja/fast-mode.md#handle-rate-limits) 場合、Claude Code は拒否された各 fast mode リクエストを同じ方法で標準速度で再試行するため、このフォールバックもキャッシュを保持します。`/clear` と `/compact` はこれをリセットします。これらはいずれにしてもその時点でキャッシュを再構築するためです。105コストは会話ごとに 1 回適用されます。最初の fast mode ターンの後、Claude Code はヘッダーを送信し続け、キャッシュキーの一部ではないリクエストの速度設定のみを変更します。fast mode をオフにすること、[レート制限後の標準速度への自動フォールバック](https://code.claude.com/docs/ja/fast-mode.md#handle-rate-limits)、およびその後にオンに戻すことはすべてキャッシュを保持します。セッション中に [使用クレジットが不足した](https://code.claude.com/docs/ja/fast-mode.md#handle-rate-limits) 場合、Claude Code は拒否された各 fast mode リクエストを同じ方法で標準速度で再試行するため、このフォールバックもキャッシュを保持します。`/clear` と `/compact` はこれをリセットします。これらはいずれにしてもその時点でキャッシュを再構築するためです。
106 106
107### MCP サーバーの接続または削除107### MCP サーバーの接続または削除
108 108
109ツール定義はシステムプロンプトレイヤーに存在するため、リクエスト内のツール定義のセットがターン間で変更されるとキャッシュが無効化されます。[アドバイザーツール](/docs/ja/advisor.md) の切り替えは例外です。その定義はキャッシュブレークポイントの後に存在するため、`/advisor` を有効または無効にするとキャッシュされたプレフィックスはそのまま保持されます。[MCP サーバー](/docs/ja/mcp.md) の変更がこれを行うかどうかは、[ツール検索](/docs/ja/mcp.md#scale-with-mcp-tool-search) がセッションの MCP ツールを遅延させるかどうかによります。これはサポートされているモデルのデフォルトです。109ツール定義はシステムプロンプトレイヤーに存在するため、リクエスト内のツール定義のセットがターン間で変更されるとキャッシュが無効化されます。[アドバイザーツール](https://code.claude.com/docs/ja/advisor.md) の切り替えは例外です。その定義はキャッシュブレークポイントの後に存在するため、`/advisor` を有効または無効にするとキャッシュされたプレフィックスはそのまま保持されます。[MCP サーバー](https://code.claude.com/docs/ja/mcp.md) の変更がこれを行うかどうかは、[ツール検索](https://code.claude.com/docs/ja/mcp.md#scale-with-mcp-tool-search) がセッションの MCP ツールを遅延させるかどうかによります。これはサポートされているモデルのデフォルトです。
110 110
111* **ツール遅延**: Claude Code は会話の最初のリクエストからツールリストを保持するため、セッション中にサーバーが接続または切断されても、既にキャッシュされているものは何も影響を受けません。最初のリクエスト後に接続を完了するサーバーは、Claude がオンデマンドで読み込む遅延定義としてそのツールを提供します。111* **ツール遅延**: Claude Code は会話の最初のリクエストからツールリストを保持するため、セッション中にサーバーが接続または切断されても、既にキャッシュされているものは何も影響を受けません。最初のリクエスト後に接続を完了するサーバーは、Claude がオンデマンドで読み込む遅延定義としてそのツールを提供します。
112* **ツール事前読み込み**: 定義を追加するとキャッシュが無効化され、意図的に削除してもそうなります。これは、ツール検索が [オフまたは利用不可](/docs/ja/mcp.md#configure-tool-search) である場合に適用されます。例えば、次のような場合です。112* **ツール事前読み込み**: 定義を追加するとキャッシュが無効化され、意図的に削除してもそうなります。これは、ツール検索が [オフまたは利用不可](https://code.claude.com/docs/ja/mcp.md#configure-tool-search) である場合に適用されます。例えば、次のような場合です。
113 * Opus 4.5、Sonnet 4.5、Haiku 4.5 より前の Google Cloud の Agent Platform モデル113 * Opus 4.5、Sonnet 4.5、Haiku 4.5 より前の Google Cloud の Agent Platform モデル
114 * Microsoft Foundry の [Azure でホストされているデプロイ](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) で、Claude Code がそのデプロイがツール検索を拒否することを検出した場合114 * Microsoft Foundry の [Azure でホストされているデプロイ](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) で、Claude Code がそのデプロイがツール検索を拒否することを検出した場合
115 115
117 117
118| セッション中の変更 | キャッシュ | 次のリクエストのツール定義 |118| セッション中の変更 | キャッシュ | 次のリクエストのツール定義 |
119| - | - | - |119| - | - | - |
120| サーバーが接続する、または [動的ツール更新](/docs/ja/mcp.md#dynamic-tool-updates) がツールを追加する | 無効化 | 新しい定義が追加される |120| サーバーが接続する、または [動的ツール更新](https://code.claude.com/docs/ja/mcp.md#dynamic-tool-updates) がツールを追加する | 無効化 | 新しい定義が追加される |
121| サーバーがユーザーの操作なしで切断される(例えば、stdio サーバーのプロセスが終了する) | 保持 | サーバーの定義は変更されないままです。そのツールの 1 つへの呼び出しはエラーを返します(実行される代わりに) |121| サーバーがユーザーの操作なしで切断される(例えば、stdio サーバーのプロセスが終了する) | 保持 | サーバーの定義は変更されないままです。そのツールの 1 つへの呼び出しは、実行される代わりにエラーを返します。ただし、Claude Code がその呼び出しのために [サーバーを再度起動する](https://code.claude.com/docs/ja/mcp.md#stdio-servers-that-exit-or-fail-to-start) 場合を除きます |
122| リモートサーバーが接続切断後に [自動的に再接続](/docs/ja/mcp.md#automatic-reconnection) する | 保持(サーバーが再接続中に送信されたリクエストが `WaitForMcpServers` ツールを追加する場合を除き、その場合は 1 回無効化) | サーバーの定義は変更されないままです。サーバーが再接続中に送信されたリクエストは、会話がまだそれをリストしていない場合に `WaitForMcpServers` を追加でき、ツールはその後会話の残りの間リストされたままになります |122| リモートサーバーが接続切断後に [自動的に再接続](https://code.claude.com/docs/ja/mcp.md#automatic-reconnection) する | 保持(サーバーが再接続中に送信されたリクエストが `WaitForMcpServers` ツールを追加する場合を除き、その場合は 1 回無効化) | サーバーの定義は変更されないままです。サーバーが再接続中に送信されたリクエストは、会話がまだそれをリストしていない場合に `WaitForMcpServers` を追加でき、ツールはその後会話の残りの間リストされたままになります |
123| [拒否ルール](#denying-an-entire-tool) を使用するか、`/mcp` でサーバーを無効にするなど、意図的にツールを削除する | 無効化 | 定義が削除される |123| [拒否ルール](#denying-an-entire-tool) を使用するか、`/mcp` でサーバーを無効にするなど、意図的にツールを削除する | 無効化 | 定義が削除される |
124 124
125ツールがプレフィックスに読み込まれる会話を再開する場合、その MCP サーバーの 1 つは最初のリクエストが送信されるときにまだ接続中である可能性があります。トランスクリプトがそのサーバーのツール定義を記録した場合、そのリクエストは記録されたとおりにそれらを含むため、サーバーが同じツールで接続を完了しても変更されません。125ツールがプレフィックスに読み込まれる会話を再開する場合、その MCP サーバーの 1 つは最初のリクエストが送信されるときにまだ接続中である可能性があります。トランスクリプトがそのサーバーのツール定義を記録した場合、そのリクエストは記録されたとおりにそれらを含むため、サーバーが同じツールで接続を完了しても変更されません。
128 128
129### プラグインの有効化または無効化129### プラグインの有効化または無効化
130 130
131[プラグイン](/docs/ja/plugins/overview.md) を有効または無効にする場合、変更のコストはプラグインが提供するコンポーネントタイプによって異なります。以下のケースは各コンポーネントタイプ、Claude Code が変更を適用するタイミング、および同じセッション内でプラグインを再度無効にするときに何が起こるかをカバーしています。131[プラグイン](https://code.claude.com/docs/ja/plugins/overview.md) を有効または無効にする場合、変更のコストはプラグインが提供するコンポーネントタイプによって異なります。以下のケースは各コンポーネントタイプ、Claude Code が変更を適用するタイミング、および同じセッション内でプラグインを再度無効にするときに何が起こるかをカバーしています。
132 132
133#### キャッシュを保持するプラグインコンポーネント133#### キャッシュを保持するプラグインコンポーネント
134 134
136 136
137#### MCP サーバーを提供するプラグイン137#### MCP サーバーを提供するプラグイン
138 138
139[MCP サーバー](/docs/ja/plugins/components.md#mcp-servers) を提供するプラグインを有効または無効にする場合、Claude Code は [MCP サーバーを接続または削除](#connecting-or-removing-an-mcp-server) するときと同じルールに従います。139[MCP サーバー](https://code.claude.com/docs/ja/plugins/components.md#mcp-servers) を提供するプラグインを有効または無効にする場合、Claude Code は [MCP サーバーを接続または削除](#connecting-or-removing-an-mcp-server) するときと同じルールに従います。
140 140
141#### コード インテリジェンス プラグイン141#### コード インテリジェンス プラグイン
142 142
143[コード インテリジェンス プラグイン](/docs/ja/plugins/code-intelligence.md) を有効にすると、Claude は [LSP ツール](/docs/ja/tools-reference.md#lsp-tool-behavior) を取得します。143[コード インテリジェンス プラグイン](https://code.claude.com/docs/ja/plugins/code-intelligence.md) を有効にすると、Claude は [LSP ツール](https://code.claude.com/docs/ja/tools-reference.md#lsp-tool-behavior) を取得します。
144 144
145#### プラグイン変更が適用されるタイミング145#### プラグイン変更が適用されるタイミング
146 146
147`/plugin` メニューで行った変更は [`/reload-plugins`](/docs/ja/plugins/cli-reference#reload-plugins) を通じて行われます。これは Claude Code がメニューを閉じるときに実行します。コストは、追加されたアナウンスメントまたは完全な再読み込みのいずれかで、変更が適用された後の最初のターンで支払われます。Claude Code は変更を独自に適用することもできます。147`/plugin` メニューで行った変更は [`/reload-plugins`](https://code.claude.com/docs/ja/plugins/cli-reference#reload-plugins) を通じて行われます。これは Claude Code がメニューを閉じるときに実行します。コストは、追加されたアナウンスメントまたは完全な再読み込みのいずれかで、変更が適用された後の最初のターンで支払われます。Claude Code は変更を独自に適用することもできます。
148 148
149* `command` ソースを持つプラグインの場合、Claude Code は [プラグイン自体を再読み込みできます](/docs/ja/plugins/loading.md#when-a-command-source-re-runs)。149* `command` ソースを持つプラグインの場合、Claude Code は [プラグイン自体を再読み込みできます](https://code.claude.com/docs/ja/plugins/loading.md#when-a-command-source-re-runs)。
150* [`/plugin` インターフェースからプラグインをインストール](/docs/ja/plugins/install#install-a-plugin) する場合、Claude Code はインストール中にそれを有効化できます。インストール概要は、それが行われたかどうかを示します。150* [`/plugin` インターフェースからプラグインをインストール](https://code.claude.com/docs/ja/plugins/install#install-a-plugin) する場合、Claude Code はインストール中にそれを有効化できます。インストール概要は、それが行われたかどうかを示します。
151* v2.1.246 以降で [`/cd` でセッションを移動](/docs/ja/permissions#move-the-session-to-another-directory) する場合、Claude Code は新しいディレクトリの設定が有効にするプラグインを移動の一部として適用します。`/reload-plugins` を保留させる完全な再読み込みの警告は表示されません。151* v2.1.246 以降で [`/cd` でセッションを移動](https://code.claude.com/docs/ja/permissions#move-the-session-to-another-directory) する場合、Claude Code は新しいディレクトリの設定が有効にするプラグインを移動の一部として適用します。`/reload-plugins` を保留させる完全な再読み込みの警告は表示されません。
152* 対話セッションでは、`--plugin-dir` で渡した [プラグインのフォルダ](/docs/ja/plugins/create.md#load-a-directory-or-archive-for-one-session) 内のプラグインを追加または削除する場合、変更は直ちに適用されます。それを適用すると完全な再読み込みがトリガーされる場合、Claude Code は代わりに変更を保留し、`/reload-plugins` を実行するよう通知を表示します。Claude Code v2.1.265 以降が必要です。152* 対話セッションでは、`--plugin-dir` で渡した [プラグインのフォルダ](https://code.claude.com/docs/ja/plugins/create.md#load-a-directory-or-archive-for-one-session) 内のプラグインを追加または削除する場合、変更は直ちに適用されます。それを適用すると完全な再読み込みがトリガーされる場合、Claude Code は代わりに変更を保留し、`/reload-plugins` を実行するよう通知を表示します。Claude Code v2.1.265 以降が必要です。
153 153
154`/reload-plugins` が実行され、再読み込みが完全な再読み込みをトリガーする場合、Claude Code は警告を表示し、再読み込みを適用しません。それでも適用するには `/reload-plugins --force` を実行します。154`/reload-plugins` が実行され、再読み込みが完全な再読み込みをトリガーする場合、Claude Code は警告を表示し、再読み込みを適用しません。それでも適用するには `/reload-plugins --force` を実行します。
155 155
156`/reload-plugins` は、デスクトップアプリ、Agent SDK、および [`-p` を使用した非対話モード](/docs/ja/headless) など、対話的なターミナルのないセッションでも、セッションに直接入力した場合に実行されます。Claude Code v2.1.260 以降が必要です。156`/reload-plugins` は、デスクトップアプリ、Agent SDK、および [`-p` を使用した非対話モード](https://code.claude.com/docs/ja/headless) など、対話的なターミナルのないセッションでも、セッションに直接入力した場合に実行されます。Claude Code v2.1.260 以降が必要です。
157 157
158これらのセッションでは、再読み込みはプラグイン MCP サーバー変更を除くすべてを適用します。これらは [次のセッションで有効になり](/docs/ja/plugins/cli-reference.md#reload-plugins)、セッション中に完全な再読み込みのコストが発生することはありません。158これらのセッションでは、再読み込みはプラグイン MCP サーバー変更を除くすべてを適用します。これらは [次のセッションで有効になり](https://code.claude.com/docs/ja/plugins/cli-reference.md#reload-plugins)、セッション中に完全な再読み込みのコストが発生することはありません。
159 159
160#### セッション内で有効にしてから無効にするプラグイン160#### セッション内で有効にしてから無効にするプラグイン
161 161
163 163
164### ツール全体の拒否164### ツール全体の拒否
165 165
166`Bash` や `WebFetch` のような裸のツール名を [拒否ルール](/docs/ja/permissions.md#manage-permissions) として追加する場合、Claude は `/permissions` を通じてルールを追加するか、[設定ファイルを直接編集](/docs/ja/settings.md#when-edits-take-effect) するかに関わらず、次のリクエストからそのツールを呼び出すことができません。これには、ターンの途中で `/permissions` を通じて追加するルールも含まれます。166`Bash` や `WebFetch` のような裸のツール名を [拒否ルール](https://code.claude.com/docs/ja/permissions.md#manage-permissions) として追加する場合、Claude は `/permissions` を通じてルールを追加するか、[設定ファイルを直接編集](https://code.claude.com/docs/ja/settings.md#when-edits-take-effect) するかに関わらず、次のリクエストからそのツールを呼び出すことができません。これには、ターンの途中で `/permissions` を通じて追加するルールも含まれます。
167 167
168[ツール検索](/docs/ja/mcp.md#scale-with-mcp-tool-search) がアクティブな場合(サポートされているモデルのデフォルト)、リクエストのツール定義は変更されず、キャッシュされたプレフィックスは生き残ります。ツール検索が利用不可または無効な場合、Claude Code は定義を次のリクエストから削除し、キャッシュを無効化し、ルールを後で削除してもそうなります。168[ツール検索](https://code.claude.com/docs/ja/mcp.md#scale-with-mcp-tool-search) がアクティブな場合(サポートされているモデルのデフォルト)、リクエストのツール定義は変更されず、キャッシュされたプレフィックスは生き残ります。ツール検索が利用不可または無効な場合、Claude Code は定義を次のリクエストから削除し、キャッシュを無効化し、ルールを後で削除してもそうなります。
169 169
170この方法でツールをブロックするのは、ツール名の位置で一致する拒否ルールのみです。裸のツール名、同等の `Bash(*)` フォーム、または [ツール名グロブ](/docs/ja/permissions.md#tool-name-wildcards) (`"*"` など)です。`"mcp__*"` のような MCP ツールのみに一致するグロブは、同じ方法でそれらのツールをブロックします。`Bash(rm *)` のようなスコープ付き拒否ルール、およびすべての許可ルールと確認ルールは、Claude が見るツールを変更しません。Claude Code は Claude が呼び出しを試みるときにそれらをチェックし、プレフィックスはそのまま保持されます。170この方法でツールをブロックするのは、ツール名の位置で一致する拒否ルールのみです。裸のツール名、同等の `Bash(*)` フォーム、または [ツール名グロブ](https://code.claude.com/docs/ja/permissions.md#tool-name-wildcards) (`"*"` など)です。`"mcp__*"` のような MCP ツールのみに一致するグロブは、同じ方法でそれらのツールをブロックします。`Bash(rm *)` のようなスコープ付き拒否ルール、およびすべての許可ルールと確認ルールは、Claude が見るツールを変更しません。Claude Code は Claude が呼び出しを試みるときにそれらをチェックし、プレフィックスはそのまま保持されます。
171 171
172### 会話のコンテキスト圧縮172### 会話のコンテキスト圧縮
173 173
174[コンテキスト圧縮](/docs/ja/context-window.md#what-survives-compaction) はメッセージ履歴を概要に置き換えます。設計上、これは会話レイヤーを無効化します。次のリクエストには、古いものとプレフィックスを共有しない新しい、より短い履歴があるためです。システムプロンプトレイヤーとプロジェクトコンテキストレイヤーは、キャッシュされたままにできます。174[コンテキスト圧縮](https://code.claude.com/docs/ja/context-window.md#what-survives-compaction) はメッセージ履歴を概要に置き換えます。設計上、これは会話レイヤーを無効化します。次のリクエストには、古いものとプレフィックスを共有しない新しい、より短い履歴があるためです。システムプロンプトレイヤーとプロジェクトコンテキストレイヤーは、キャッシュされたままにできます。
175 175
176* **システムプロンプト**: 次のリクエストはこのレイヤーをキャッシュから読み込みます。ただし、[再開された会話](#resuming-a-session) が現在では古くなったシステムプロンプトを保持している場合を除きます。その会話が初めて圧縮されるとき、Claude Code は現在のプロンプトに切り替え、次のリクエストはこのレイヤーのキャッシュを 1 回再構築します。176* **システムプロンプト**: 次のリクエストはこのレイヤーをキャッシュから読み込みます。ただし、[再開された会話](#resuming-a-session) が現在では古くなったシステムプロンプトを保持している場合を除きます。その会話が初めて圧縮されるとき、Claude Code は現在のプロンプトに切り替え、次のリクエストはこのレイヤーのキャッシュを 1 回再構築します。
177* **プロジェクトコンテキスト**: Claude Code はこのレイヤーをディスクから再読み込みします。次のリクエストがこのレイヤーをキャッシュから読み込むのは、CLAUDE.md とメモリがセッション開始以降変更されていない場合のみです。177* **プロジェクトコンテキスト**: Claude Code はこのレイヤーをディスクから再読み込みします。次のリクエストがこのレイヤーをキャッシュから読み込むのは、CLAUDE.md とメモリがセッション開始以降変更されていない場合のみです。
178 178
179概要を生成するために、Claude Code は別のリクエストを送信します。このリクエストには、会話のシステムプロンプト、ツール、および要約対象の履歴がそのまま含まれます。末尾には要約の指示が付きます。キャッシュが温かい間、そのリクエストはキャッシュからプレフィックスを読み込みます。そのため、セッション中の `/compact` はコンテキストサイズが示唆するコストの一部で済み、ほとんどの時間を概要の生成に費やします。179概要を生成するために、Claude Code は別のリクエストを送信します。このリクエストには、会話のシステムプロンプト、ツール、および要約対象の履歴がそのまま含まれます。末尾には要約の指示が付きます。キャッシュが温かい間、そのリクエストはキャッシュからプレフィックスを読み込みます。そのため、セッション中の `/compact` はコンテキストサイズが示唆するコストの一部で済み、ほとんどの時間を概要の生成に費やします。
180 180
181[キャッシュ有効期間](#cache-lifetime) より長い休止の後、読み込むキャッシュは残っていないため、要約リクエストはその履歴をキャッシュされていない入力として再処理します。これが `/compact` が [古いセッションを再開](/docs/ja/sessions.md#resume-a-session) するときに最もコストがかかる理由です。温かいケースと冷たいケースの両方で、圧縮後のターンは、はるかに短い概要のみのために会話キャッシュを再構築するため、そのターンは遅い部分ではありません。181[キャッシュ有効期間](#cache-lifetime) より長い休止の後、読み込むキャッシュは残っていないため、要約リクエストはその履歴をキャッシュされていない入力として再処理します。これが `/compact` が [古いセッションを再開](https://code.claude.com/docs/ja/sessions.md#resume-a-session) するときに最もコストがかかる理由です。温かいケースと冷たいケースの両方で、圧縮後のターンは、はるかに短い概要のみのために会話キャッシュを再構築するため、そのターンは遅い部分ではありません。
182 182
183> [!TIP]183> [!TIP]
184>184>
185> コンテキスト圧縮は、破棄するコンテキストがもう必要ないコンテンツである場合に有利に働きます。そのオーバーヘッドが発生するタイミングを選択するには、自動圧縮がタスク中にトリガーされるのを待つのではなく、タスク間などの作業の自然な区切りで `/compact` を実行します。完全に放棄したい方向に進んでしまった場合は、代わりに [`/rewind`](#rewinding-the-conversation) で以前のターンに戻してください。巻き戻しは、圧縮のように新しいプレフィックスを構築するのではなく、既にキャッシュされているプレフィックスまで切り詰めます。185> コンテキスト圧縮は、破棄するコンテキストがもう必要ないコンテンツである場合に有利に働きます。そのオーバーヘッドが発生するタイミングを選択するには、自動圧縮がタスク中にトリガーされるのを待つのではなく、タスク間などの作業の自然な区切りで `/compact` を実行します。完全に放棄したい方向に進んでしまった場合は、代わりに [`/rewind`](#rewinding-the-conversation) で以前のターンに戻してください。巻き戻しは、圧縮のように新しいプレフィックスを構築するのではなく、既にキャッシュされているプレフィックスまで切り詰めます。
186 186
187[1 時間の TTL](#which-ttl-each-request-gets) が適用されているターミナルセッションで長い会話をアイドル状態のままにすると、Claude Code はキャッシュが期限切れになる少し前にその会話を圧縮することがあります。アイドル時の圧縮をオフにするには、[`idleCompaction`](/docs/ja/settings-reference#idlecompaction) を `false` に設定します。これには Claude Code v2.1.290 以降が必要です。187[1 時間の TTL](#which-ttl-each-request-gets) が適用されているターミナルセッションで長い会話をアイドル状態のままにすると、Claude Code はキャッシュが期限切れになる少し前にその会話を圧縮することがあります。アイドル時の圧縮をオフにするには、[`idleCompaction`](https://code.claude.com/docs/ja/settings-reference#idlecompaction) を `false` に設定します。これには Claude Code v2.1.290 以降が必要です。
188 188
189### 多くの画像の蓄積189### 多くの画像の蓄積
190 190
196 196
197### Claude Code のアップグレード197### Claude Code のアップグレード
198 198
199新しい Claude Code バージョンは通常、システムプロンプトまたはツール定義を更新するため、アップグレード後に開始する最初の会話は先頭からキャッシュを構築します。[自動更新](/docs/ja/setup.md#auto-updates) は新しいバージョンをバックグラウンドでダウンロードしますが、次の起動時に適用され、セッション中には決して適用されないため、セッション中の予期しない事態ではなく、再起動後のキャッシュされていない最初のターンとしてこれが表示されます。アップグレードが適用されるタイミングを制御するには、`DISABLE_AUTOUPDATER=1` を設定します。199新しい Claude Code バージョンは通常、システムプロンプトまたはツール定義を更新するため、アップグレード後に開始する最初の会話は先頭からキャッシュを構築します。[自動更新](https://code.claude.com/docs/ja/setup.md#auto-updates) は新しいバージョンをバックグラウンドでダウンロードしますが、次の起動時に適用され、セッション中には決して適用されないため、セッション中の予期しない事態ではなく、再起動後のキャッシュされていない最初のターンとしてこれが表示されます。アップグレードが適用されるタイミングを制御するには、`DISABLE_AUTOUPDATER=1` を設定します。
200 200
201> [!NOTE]201> [!NOTE]
202>202>
217 217
218### リポジトリ内のファイルを編集する218### リポジトリ内のファイルを編集する
219 219
220ファイルの内容は Claude がそれらを読むときにのみコンテキストに入り、読み取りは会話に追加されます。Claude が以前読んだファイルを編集しても、履歴内の以前の読み取りは遡及的に変更されません。代わりに、Claude Code はファイルが変更されたことを示す [`<system-reminder>`](/docs/ja/glossary#system-reminder) を追加し、必要に応じて Claude がそれを再度読み取ります。220ファイルの内容は Claude がそれらを読むときにのみコンテキストに入り、読み取りは会話に追加されます。Claude が以前読んだファイルを編集しても、履歴内の以前の読み取りは遡及的に変更されません。代わりに、Claude Code はファイルが変更されたことを示す [`<system-reminder>`](https://code.claude.com/docs/ja/glossary#system-reminder) を追加し、必要に応じて Claude がそれを再度読み取ります。
221 221
222### セッション中に CLAUDE.md を編集する222### セッション中に CLAUDE.md を編集する
223 223
224プロジェクトルートとユーザーレベルの CLAUDE.md ファイルはセッション開始時に 1 回読み取られ、メモリに保持されます。セッション中にそれらを編集してもキャッシュは無効化されませんが、編集も適用されません。Claude はセッション開始時に読み込まれたバージョンで動作し続けます。新しいコンテンツは次の `/clear`、`/compact`、または再起動時に読み込まれます。224プロジェクトルートとユーザーレベルの CLAUDE.md ファイルはセッション開始時に 1 回読み取られ、メモリに保持されます。セッション中にそれらを編集してもキャッシュは無効化されませんが、編集も適用されません。Claude はセッション開始時に読み込まれたバージョンで動作し続けます。新しいコンテンツは次の `/clear`、`/compact`、または再起動時に読み込まれます。
225 225
226[サブディレクトリ内のネストされた CLAUDE.md ファイル](/docs/ja/memory.md)と[`paths:` フロントマターを持つルール](/docs/ja/memory#path-specific-rules)は、後で必要に応じて読み込まれます。読み込まれる前に自分で編集した場合は、その編集が反映されます。読み込まれた後、コンテンツは会話履歴の一部であるため、セッション中の編集は遡及的にそれを変更しません。226[サブディレクトリ内のネストされた CLAUDE.md ファイル](https://code.claude.com/docs/ja/memory.md)と[`paths:` フロントマターを持つルール](https://code.claude.com/docs/ja/memory#path-specific-rules)は、後で必要に応じて読み込まれます。読み込まれる前に自分で編集した場合は、その編集が反映されます。読み込まれた後、コンテンツは会話履歴の一部であるため、セッション中の編集は遡及的にそれを変更しません。
227 227
228### 権限モードを変更する228### 権限モードを変更する
229 229
230[権限モード](/docs/ja/permission-modes.md)(手動から編集を受け入れるなど)を切り替えても、システムプロンプトやツール定義は変更されないため、モード変更はキャッシュセーフです。例外は [`opusplan`](/docs/ja/model-config#opusplan-model-setting) モデル設定を使用した plan mode です。これはプラン モードに入るか終了するときに、モデルを Opus と Sonnet の間で切り替えます。これにより、モード切り替えは[モデル切り替え](#switching-models)になります。230[権限モード](https://code.claude.com/docs/ja/permission-modes.md)(手動から編集を受け入れるなど)を切り替えても、システムプロンプトやツール定義は変更されないため、モード変更はキャッシュセーフです。例外は [`opusplan`](https://code.claude.com/docs/ja/model-config#opusplan-model-setting) モデル設定を使用した plan mode です。これはプラン モードに入るか終了するときに、モデルを Opus と Sonnet の間で切り替えます。これにより、モード切り替えは[モデル切り替え](#switching-models)になります。
231 231
232### 出力スタイルを変更する232### 出力スタイルを変更する
233 233
234セッション中に [`/output-style`](/docs/ja/output-styles#change-your-output-style)、`/config`、または `outputStyle` 設定で[出力スタイル](/docs/ja/output-styles.md)を切り替えると、Claude は次のメッセージから新しいスタイルを使用します。Claude Code は新しいスタイルの指示をメッセージとして会話に配信するため、そのリクエストはシステムプロンプトと以前の会話をキャッシュから読み取ります。234セッション中に [`/output-style`](https://code.claude.com/docs/ja/output-styles#change-your-output-style)、`/config`、または `outputStyle` 設定で[出力スタイル](https://code.claude.com/docs/ja/output-styles.md)を切り替えると、Claude は次のメッセージから新しいスタイルを使用します。Claude Code は新しいスタイルの指示をメッセージとして会話に配信するため、そのリクエストはシステムプロンプトと以前の会話をキャッシュから読み取ります。
235 235
236v2.1.251 より前では、セッション中のスタイル切り替えはキャッシュを保持していましたが、`/clear` を実行するか新しいセッションを開始するまで適用されませんでした。236v2.1.251 より前では、セッション中のスタイル切り替えはキャッシュを保持していましたが、`/clear` を実行するか新しいセッションを開始するまで適用されませんでした。
237 237
238### スキルとコマンドを呼び出す238### スキルとコマンドを呼び出す
239 239
240[スキル](/docs/ja/skills.md)と[コマンド](/docs/ja/commands.md)は、呼び出しポイントでユーザーメッセージとして指示を挿入します。会話内の以前のものは何も変わりません。frontmatter で `model` という名前を付けたスキルまたはコマンドは、そのターンの[モデル切り替え](#switching-models)になる可能性があります。240[スキル](https://code.claude.com/docs/ja/skills.md)と[コマンド](https://code.claude.com/docs/ja/commands.md)は、呼び出しポイントでユーザーメッセージとして指示を挿入します。会話内の以前のものは何も変わりません。frontmatter で `model` という名前を付けたスキルまたはコマンドは、そのターンの[モデル切り替え](#switching-models)になる可能性があります。
241 241
242### `/recap` を実行する242### `/recap` を実行する
243 243
244[`/recap`](/docs/ja/interactive-mode#session-recap)はターミナルに表示するための概要を生成します。`/compact` とは異なり、メッセージ履歴を置き換えるのではなく、コマンド出力として概要を追加するため、キャッシュされたプレフィックスはそのまま残ります。244[`/recap`](https://code.claude.com/docs/ja/interactive-mode#session-recap)はターミナルに表示するための概要を生成します。`/compact` とは異なり、メッセージ履歴を置き換えるのではなく、コマンド出力として概要を追加するため、キャッシュされたプレフィックスはそのまま残ります。
245 245
246### 会話を巻き戻す246### 会話を巻き戻す
247 247
248[`/rewind`](/docs/ja/checkpointing)は会話を以前のターンに切り詰めます。残りの履歴は、その時点でキャッシュが構築されたのと同じコンテンツであり、システムプロンプトとプロジェクトコンテキストレイヤーは変更されないため、次のリクエストは以前のキャッシュエントリにヒットします。それ以降のすべてのターンはそのプレフィックスを読み取っており、元のターンが TTL より長い前であっても、エントリをウォーム状態に保ちました。248[`/rewind`](https://code.claude.com/docs/ja/checkpointing)は会話を以前のターンに切り詰めます。残りの履歴は、その時点でキャッシュが構築されたのと同じコンテンツであり、システムプロンプトとプロジェクトコンテキストレイヤーは変更されないため、次のリクエストは以前のキャッシュエントリにヒットします。それ以降のすべてのターンはそのプレフィックスを読み取っており、元のターンが TTL より長い前であっても、エントリをウォーム状態に保ちました。
249 249
250会話と一緒にファイルチェックポイントを復元しても、キャッシュに対する個別の効果はありません。ファイルの内容は、[リポジトリ内のファイルを編集する](#editing-files-in-your-repository)と同じように、Claude がそれらを読むときにのみコンテキストに入ります。250会話と一緒にファイルチェックポイントを復元しても、キャッシュに対する個別の効果はありません。ファイルの内容は、[リポジトリ内のファイルを編集する](#editing-files-in-your-repository)と同じように、Claude がそれらを読むときにのみコンテキストに入ります。
251 251
252## セッションの再開252## セッションの再開
253 253
254[セッションを再開](/docs/ja/sessions.md#resume-a-session)する場合、Claude Code は会話全体を再度送信し、リクエストはキャッシュから、そのプレフィックスの変更されていない部分で、かつ [キャッシュの有効期限](#cache-lifetime)内にある部分を読み込みます。このページの上部にあるレイヤーテーブルは、各レイヤーで何が変わるかを示しています。254[セッションを再開](https://code.claude.com/docs/ja/sessions.md#resume-a-session)する場合、Claude Code は会話全体を再度送信し、リクエストはキャッシュから、そのプレフィックスの変更されていない部分で、かつ [キャッシュの有効期限](#cache-lifetime)内にある部分を読み込みます。このページの上部にあるレイヤーテーブルは、各レイヤーで何が変わるかを示しています。
255 255
256システムプロンプトは [Claude Code のアップグレード](#upgrading-claude-code)後、または再開時に異なる [`--append-system-prompt`](/docs/ja/cli-reference#system-prompt-flags) テキストがある場合に変更されます。デフォルトでは、再開された会話は開始時のシステムプロンプトを保持するため、その履歴は同じプロンプトの背後にあり、会話がコンパクト化されるか新しい会話で変更が有効になります。[再開されたセッションのシステムプロンプトフラグ](/docs/ja/cli-reference.md#system-prompt-flags-in-resumed-conversations)は Claude Code がすべてのリクエストでプロンプトを再構築する場合をカバーしています。256システムプロンプトは [Claude Code のアップグレード](#upgrading-claude-code)後、または再開時に異なる [`--append-system-prompt`](https://code.claude.com/docs/ja/cli-reference#system-prompt-flags) テキストがある場合に変更されます。デフォルトでは、再開された会話は開始時のシステムプロンプトを保持するため、その履歴は同じプロンプトの背後にあり、会話がコンパクト化されるか新しい会話で変更が有効になります。[再開されたセッションのシステムプロンプトフラグ](https://code.claude.com/docs/ja/cli-reference.md#system-prompt-flags-in-resumed-conversations)は Claude Code がすべてのリクエストでプロンプトを再構築する場合をカバーしています。
257 257
258## キャッシュライフタイム258## キャッシュライフタイム
259 259
266Claude Code はリクエストごとに TTL を決定し、すべてのリクエストは 2 つの固定バケットのいずれかに該当します。266Claude Code はリクエストごとに TTL を決定し、すべてのリクエストは 2 つの固定バケットのいずれかに該当します。
267 267
268* **メイン会話**: インタラクティブなターン、非インタラクティブな `-p` 実行、Agent SDK ターン、およびそれらと共にインラインで実行される Claude Code ヘルパー268* **メイン会話**: インタラクティブなターン、非インタラクティブな `-p` 実行、Agent SDK ターン、およびそれらと共にインラインで実行される Claude Code ヘルパー
269* **その他すべて**: [サブエージェント](/docs/ja/sub-agents.md)、[ワークフロー](/docs/ja/workflows.md)、プロセス内[チームメイト](/docs/ja/agent-teams.md)、フォーク、圧縮、セッションタイトルなど、その会話の外で Claude Code が行うリクエスト269* **その他すべて**: [サブエージェント](https://code.claude.com/docs/ja/sub-agents.md)、[ワークフロー](https://code.claude.com/docs/ja/workflows.md)、プロセス内[チームメイト](https://code.claude.com/docs/ja/agent-teams.md)、フォーク、圧縮、セッションタイトルなど、その会話の外で Claude Code が行うリクエスト
270 270
271TTL を自分で選択しない限り、Claude Code は Claude サブスクリプション内でプランに含まれる使用量内でのみ 1 時間の TTL をリクエストします。そこでメイン会話に対して 1 時間をリクエストし、Anthropic がサーバー側で制御する小さなヘルパーリクエストセットをリクエストします。このテーブルは、両方の種類の請求下での各バケットのデフォルト TTL を示しています。271TTL を自分で選択しない限り、Claude Code は Claude サブスクリプション内でプランに含まれる使用量内でのみ 1 時間の TTL をリクエストします。そこでメイン会話に対して 1 時間をリクエストし、Anthropic がサーバー側で制御する小さなヘルパーリクエストセットをリクエストします。このテーブルは、両方の種類の請求下での各バケットのデフォルト TTL を示しています。
272 272
281 281
282どちらのバケットに対しても TTL を設定できます。各コントロールは `5m` または `1h` を取り、Claude Code は他の値を無視します。282どちらのバケットに対しても TTL を設定できます。各コントロールは `5m` または `1h` を取り、Claude Code は他の値を無視します。
283 283
284* **メイン会話**: [`promptCacheTtl`](/docs/ja/settings-reference#promptcachettl) 設定、または `CLAUDE_CODE_PROMPT_CACHE_TTL` [環境変数](/docs/ja/env-vars.md)284* **メイン会話**: [`promptCacheTtl`](https://code.claude.com/docs/ja/settings-reference#promptcachettl) 設定、または `CLAUDE_CODE_PROMPT_CACHE_TTL` [環境変数](https://code.claude.com/docs/ja/env-vars.md)
285* **その他すべて**: [`subagentPromptCacheTtl`](/docs/ja/settings-reference#subagentpromptcachettl) 設定、または `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` 環境変数285* **その他すべて**: [`subagentPromptCacheTtl`](https://code.claude.com/docs/ja/settings-reference#subagentpromptcachettl) 設定、または `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` 環境変数
286 286
287両方の設定と両方の環境変数には Claude Code v2.1.242 以降が必要です。API キーで署名するか、クラウドプロバイダーを使用する場合は、`promptCacheTtl` を `1h` に設定して、メイン会話に 1 時間のキャッシュを与えます。その外のリクエストは、そのバケットに対しても TTL を選択するまで 5 分のデフォルトを保ちます。287両方の設定と両方の環境変数には Claude Code v2.1.242 以降が必要です。API キーで署名するか、クラウドプロバイダーを使用する場合は、`promptCacheTtl` を `1h` に設定して、メイン会話に 1 時間のキャッシュを与えます。その外のリクエストは、そのバケットに対しても TTL を選択するまで 5 分のデフォルトを保ちます。
288 288
2911. `FORCE_PROMPT_CACHING_5M=1`。両方のバケットに対して 5 分を強制します2911. `FORCE_PROMPT_CACHING_5M=1`。両方のバケットに対して 5 分を強制します
2922. バケットの環境変数2922. バケットの環境変数
2933. バケットの設定2933. バケットの設定
2944. サブエージェントのリクエストの場合、サブエージェントの [`experimental` frontmatter フィールド](/docs/ja/sub-agents#supported-frontmatter-fields)の `cacheTtl` 値。Claude Code v2.1.248 以降が必要です。Claude サブスクリプションが使用クレジットを使用している間、Claude Code はそこの `1h` を無視します2944. サブエージェントのリクエストの場合、サブエージェントの [`experimental` frontmatter フィールド](https://code.claude.com/docs/ja/sub-agents#supported-frontmatter-fields)の `cacheTtl` 値。Claude Code v2.1.248 以降が必要です。Claude サブスクリプションが使用クレジットを使用している間、Claude Code はそこの `1h` を無視します
2955. `ENABLE_PROMPT_CACHING_1H=1`。両方のバケットに対して 1 時間をリクエストします2955. `ENABLE_PROMPT_CACHING_1H=1`。両方のバケットに対して 1 時間をリクエストします
2966. [リクエストのバケットのデフォルト](#which-ttl-each-request-gets)2966. [リクエストのバケットのデフォルト](#which-ttl-each-request-gets)
297 297
298キャッシング動作をデバッグする場合、2 つの TTL を比較する場合、または[管理設定](/docs/ja/managed-settings.md)で設定された長い TTL をオーバーライドする場合は、`FORCE_PROMPT_CACHING_5M=1` を設定します。298キャッシング動作をデバッグする場合、2 つの TTL を比較する場合、または[管理設定](https://code.claude.com/docs/ja/managed-settings.md)で設定された長い TTL をオーバーライドする場合は、`FORCE_PROMPT_CACHING_5M=1` を設定します。
299 299
300メイン会話のキャッシュ書き込みが使用した TTL を確認するには、`claude -p "hello" --output-format json` を実行し、結果の `usage.cache_creation` を読みます。Claude Code は 1 時間のキャッシュ書き込みを `ephemeral_1h_input_tokens` の下で報告し、5 分のキャッシュ書き込みを `ephemeral_5m_input_tokens` の下で報告します。300メイン会話のキャッシュ書き込みが使用した TTL を確認するには、`claude -p "hello" --output-format json` を実行し、結果の `usage.cache_creation` を読みます。Claude Code は 1 時間のキャッシュ書き込みを `ephemeral_1h_input_tokens` の下で報告し、5 分のキャッシュ書き込みを `ephemeral_5m_input_tokens` の下で報告します。
301 301
302ゲートウェイ経由または Amazon Bedrock で 1 時間の TTL を利用するには:302ゲートウェイ経由または Amazon Bedrock で 1 時間の TTL を利用するには:
303 303
304* **`ANTHROPIC_BASE_URL` で設定した LLM ゲートウェイ**: 1 時間のリクエストの一部は `anthropic-beta` ヘッダーで送信されるため、ゲートウェイを[そのヘッダーを変更せずに転送](/docs/ja/llm-gateway-protocol.md#request-headers)するように設定します304* **`ANTHROPIC_BASE_URL` で設定した LLM ゲートウェイ**: 1 時間のリクエストの一部は `anthropic-beta` ヘッダーで送信されるため、ゲートウェイを[そのヘッダーを変更せずに転送](https://code.claude.com/docs/ja/llm-gateway-protocol.md#request-headers)するように設定します
305* **[Claude アプリゲートウェイ](/docs/ja/claude-apps-gateway)**: [ゲートウェイポリシー](/docs/ja/claude-apps-gateway-config.md#one-hour-prompt-cache)で 1 時間の TTL をリクエストするよう管理者に依頼してください305* **[Claude アプリゲートウェイ](https://code.claude.com/docs/ja/claude-apps-gateway)**: [ゲートウェイポリシー](https://code.claude.com/docs/ja/claude-apps-gateway-config.md#one-hour-prompt-cache)で 1 時間の TTL をリクエストするよう管理者に依頼してください
306* **Amazon Bedrock**: プロンプトキャッシュのサポート、最小キャッシュ可能プリフィックス長、および 1 時間の TTL の可用性はすべてモデルによって異なります。キャッシュトークン数がゼロのままの場合は、Amazon Bedrock ドキュメントの[サポートされているモデル、リージョン、制限](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html#prompt-caching-models)を確認してください。306* **Amazon Bedrock**: プロンプトキャッシュのサポート、最小キャッシュ可能プリフィックス長、および 1 時間の TTL の可用性はすべてモデルによって異なります。キャッシュトークン数がゼロのままの場合は、Amazon Bedrock ドキュメントの[サポートされているモデル、リージョン、制限](https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html#prompt-caching-models)を確認してください。
307 307
308## キャッシュスコープ308## キャッシュスコープ
311 311
312同じディレクトリで並行して実行するセッションは、一致するプリフィックスを構築し、互いのキャッシュを読み取ります。順序付きセッションは、起動時に取得された git ステータススナップショットが一致する場合にのみプリフィックスを共有します。各会話はそのスナップショットからブランチと最近のコミットも保持するためです。312同じディレクトリで並行して実行するセッションは、一致するプリフィックスを構築し、互いのキャッシュを読み取ります。順序付きセッションは、起動時に取得された git ステータススナップショットが一致する場合にのみプリフィックスを共有します。各会話はそのスナップショットからブランチと最近のコミットも保持するためです。
313 313
314基礎となる API キャッシュはより広いです。キャッシュは組織間で分離され、一部のプロバイダーでは、[組織内のワークスペース間](https://platform.claude.com/docs/ja/build-with-claude/prompt-caching#cache-storage-and-sharing)で分離されます。これらの境界内で、同じモデルとプリフィックスを持つ 2 つのリクエストは同じキャッシュを読み取ります。自動化されたプロセスのフリートを実行する Agent SDK 呼び出し元については、[ユーザーとマシン間でプロンプトキャッシングを改善](/docs/ja/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines)を参照して、自動メモリの場所をシステムプロンプトから移動し、システムプロンプトのキャッシュエントリをユーザーとマシン間で共有します。314基礎となる API キャッシュはより広いです。キャッシュは組織間で分離され、一部のプロバイダーでは、[組織内のワークスペース間](https://platform.claude.com/docs/ja/build-with-claude/prompt-caching#cache-storage-and-sharing)で分離されます。これらの境界内で、同じモデルとプリフィックスを持つ 2 つのリクエストは同じキャッシュを読み取ります。自動化されたプロセスのフリートを実行する Agent SDK 呼び出し元については、[ユーザーとマシン間でプロンプトキャッシングを改善](https://code.claude.com/docs/ja/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines)を参照して、自動メモリの場所をシステムプロンプトから移動し、システムプロンプトのキャッシュエントリをユーザーとマシン間で共有します。
315 315
316## キャッシュパフォーマンスを確認する316## キャッシュパフォーマンスを確認する
317 317
318キャッシュパフォーマンスは、API がすべての応答で報告する 2 つのトークン数として表示されます。最も直接的な方法は、`current_usage` オブジェクトを読み取る[statusline スクリプト](/docs/ja/statusline.md)を監視することです。318キャッシュパフォーマンスは、API がすべての応答で報告する 2 つのトークン数として表示されます。最も直接的な方法は、`current_usage` オブジェクトを読み取る[statusline スクリプト](https://code.claude.com/docs/ja/statusline.md)を監視することです。
319 319
320| フィールド | 意味 |320| フィールド | 意味 |
321| - | - |321| - | - |
324 324
325読み取りから作成への比率が高いほど、キャッシングが機能しています。作成がターンごとに高いままの場合、プリフィックスで何かが変更されています。[キャッシュを無効にするアクション](#actions-that-invalidate-the-cache)セクションは、通常の原因をリストします。325読み取りから作成への比率が高いほど、キャッシングが機能しています。作成がターンごとに高いままの場合、プリフィックスで何かが変更されています。[キャッシュを無効にするアクション](#actions-that-invalidate-the-cache)セクションは、通常の原因をリストします。
326 326
327セッションごとのサマリーについては、`/usage` を実行してください。メインの会話の最初の応答の後、Claude Code はセッションブロックに[`Prompt cache (main)` 行](/docs/ja/costs#prompt-cache-statistics)を追加し、セッションのヒット率、ミス数、およびキャッシュが現在ウォームであるかどうかを表示します。statusline スクリプトは、[`prompt_cache` オブジェクト](/docs/ja/statusline#prompt-cache-fields)から同じ数値を読み取ることができます。どちらも Claude Code v2.1.251 以降が必要です。327セッションごとのサマリーについては、`/usage` を実行してください。メインの会話の最初の応答の後、Claude Code はセッションブロックに[`Prompt cache (main)` 行](https://code.claude.com/docs/ja/costs#prompt-cache-statistics)を追加し、セッションのヒット率、ミス数、およびキャッシュが現在ウォームであるかどうかを表示します。statusline スクリプトは、[`prompt_cache` オブジェクト](https://code.claude.com/docs/ja/statusline#prompt-cache-fields)から同じ数値を読み取ることができます。どちらも Claude Code v2.1.251 以降が必要です。
328 328
329`Prompt cache (main)` 行は、Claude Code が識別できる場合、最後のミスの可能性のある原因も名前を付けます。例えば `likely cause: tool definitions changed` のようにです。可能性のある原因テキストには Claude Code v2.1.260 以降が必要です。329`Prompt cache (main)` 行は、Claude Code が識別できる場合、最後のミスの可能性のある原因も名前を付けます。例えば `likely cause: tool definitions changed` のようにです。可能性のある原因テキストには Claude Code v2.1.260 以降が必要です。
330 330
331組織全体の可視性については、OpenTelemetry エクスポーターはユーザーとセッションごとにキャッシュ読み取りと作成トークンを報告します。メトリックとイベント属性リファレンスについては、[使用状況の監視](/docs/ja/monitoring-usage.md)を参照してください。331組織全体の可視性については、OpenTelemetry エクスポーターはユーザーとセッションごとにキャッシュ読み取りと作成トークンを報告します。メトリックとイベント属性リファレンスについては、[使用状況の監視](https://code.claude.com/docs/ja/monitoring-usage.md)を参照してください。
332 332
333## サブエージェントとキャッシュ333## サブエージェントとキャッシュ
334 334
335[サブエージェント](/docs/ja/sub-agents.md)は、親とは別に、独自のシステムプロンプトとツールセットを持つ独自の会話を開始します。最初のリクエストは親のキャッシュを読み取りません。2 つのプリフィックスが異なるためです。また、独自のターン全体で独自のキャッシュを温めます。サブエージェントはメイン会話の [TTL バケット](#which-ttl-each-request-gets)の外にあるため、サブスクリプション上でも 5 分間の TTL を取得します。[より長い TTL を選択](#choose-the-ttl-yourself)するまでです。335[サブエージェント](https://code.claude.com/docs/ja/sub-agents.md)は、親とは別に、独自のシステムプロンプトとツールセットを持つ独自の会話を開始します。最初のリクエストは親のキャッシュを読み取りません。2 つのプリフィックスが異なるためです。また、独自のターン全体で独自のキャッシュを温めます。サブエージェントはメイン会話の [TTL バケット](#which-ttl-each-request-gets)の外にあるため、サブスクリプション上でも 5 分間の TTL を取得します。[より長い TTL を選択](#choose-the-ttl-yourself)するまでです。
336 336
337親のキャッシュは影響を受けません。親の側から、サブエージェントの呼び出しと結果は会話に追加され、親のプリフィックスはそのままです。337親のキャッシュは影響を受けません。親の側から、サブエージェントの呼び出しと結果は会話に追加され、親のプリフィックスはそのままです。
338 338
339一方、[フォーク](/docs/ja/sub-agents.md#fork-the-current-conversation)は、親のシステムプロンプト、ツール、会話履歴を正確に継承するため、最初のリクエストは親のキャッシュを読み取ります。339一方、[フォーク](https://code.claude.com/docs/ja/sub-agents.md#fork-the-current-conversation)は、親のシステムプロンプト、ツール、会話履歴を正確に継承するため、最初のリクエストは親のキャッシュを読み取ります。
340 340
341他のリクエストも、以前のリクエストがキャッシュしたプリフィックスを読み取ることができます。341他のリクエストも、以前のリクエストがキャッシュしたプリフィックスを読み取ることができます。
342 342
343* **セッションコピー**: [`/fork`](/docs/ja/agent-view#copy-the-session-with-%2Ffork)でコピーしたセッションは、コピーされた会話の最後にメッセージとして分離命令を受け取るため、元の会話が構築したキャッシュはそのままです。343* **セッションコピー**: [`/fork`](https://code.claude.com/docs/ja/agent-view#copy-the-session-with-%2Ffork)でコピーしたセッションは、コピーされた会話の最後にメッセージとして分離命令を受け取るため、元の会話が構築したキャッシュはそのままです。
344* **コンパクト化**: [会話のコンパクト化](#compacting-the-conversation)で説明されている要約呼び出しは、同じプリフィックス共有アプローチを使用します。344* **コンパクト化**: [会話のコンパクト化](#compacting-the-conversation)で説明されている要約呼び出しは、同じプリフィックス共有アプローチを使用します。
345* **再開されたサブエージェント**: Claude が[サブエージェントを再開](/docs/ja/sub-agents.md#resume-subagents)する場合、再開実行の最初のリクエストは、元の実行が温めたキャッシュを読み取ることができます。345* **再開されたサブエージェント**: Claude が[サブエージェントを再開](https://code.claude.com/docs/ja/sub-agents.md#resume-subagents)する場合、再開実行の最初のリクエストは、元の実行が温めたキャッシュを読み取ることができます。
346* **ワークフローファンアウト**: [ワークフローファンアウト](/docs/ja/workflows.md#prompt-caching-in-a-fan-out)の同じプリフィックスエージェントでは、Claude Code はデフォルトで最初のエージェント以外をすべて最大 5 秒間保持するため、最初のエージェントがキャッシュしたプリフィックスを読み取ることができます。346* **ワークフローファンアウト**: [ワークフローファンアウト](https://code.claude.com/docs/ja/workflows.md#prompt-caching-in-a-fan-out)の同じプリフィックスエージェントでは、Claude Code はデフォルトで最初のエージェント以外をすべて最大 5 秒間保持するため、最初のエージェントがキャッシュしたプリフィックスを読み取ることができます。
347 347
348## プロンプトキャッシングを無効にする348## プロンプトキャッシングを無効にする
349 349
365 365
366`DISABLE_PROMPT_CACHING_SONNET` と `DISABLE_PROMPT_CACHING_OPUS` はそれぞれ、`sonnet` または `opus` エイリアスが解決するモデルに適用されます。別の Sonnet または Opus モデル ID をメインモデルとして設定した場合、そのモデルはキャッシングを保持します。たとえば、`claude-sonnet-5` でのセッションはキャッシングを保持しますが、`sonnet` は `claude-sonnet-5-5` に解決されます。そのモデルに対してキャッシングを無効にするには、`DISABLE_PROMPT_CACHING` を設定してください。366`DISABLE_PROMPT_CACHING_SONNET` と `DISABLE_PROMPT_CACHING_OPUS` はそれぞれ、`sonnet` または `opus` エイリアスが解決するモデルに適用されます。別の Sonnet または Opus モデル ID をメインモデルとして設定した場合、そのモデルはキャッシングを保持します。たとえば、`claude-sonnet-5` でのセッションはキャッシングを保持しますが、`sonnet` は `claude-sonnet-5-5` に解決されます。そのモデルに対してキャッシングを無効にするには、`DISABLE_PROMPT_CACHING` を設定してください。
367 367
368組織全体でキャッシングポリシーを設定するには、これらのいずれかまたは [TTL 変数](#cache-lifetime)を [管理設定](/docs/ja/managed-settings.md)の `env` ブロックに入れます。通常の使用では、キャッシングを有効のままにしてください。368組織全体でキャッシングポリシーを設定するには、これらのいずれかまたは [TTL 変数](#cache-lifetime)を [管理設定](https://code.claude.com/docs/ja/managed-settings.md)の `env` ブロックに入れます。通常の使用では、キャッシングを有効のままにしてください。
369 369
370## 関連リソース370## 関連リソース
371 371
372* [Claude Code の構築から学んだ教訓: プロンプトキャッシングがすべて](https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything): Plan mode、遅延ツール読み込み、コンパクト化の設計根拠372* [Claude Code の構築から学んだ教訓: プロンプトキャッシングがすべて](https://claude.com/blog/lessons-from-building-claude-code-prompt-caching-is-everything): Plan mode、遅延ツール読み込み、コンパクト化の設計根拠
373* [コンテキストウィンドウを探索](/docs/ja/context-window.md): コンテキストに読み込まれるもの、いつ読み込まれるか373* [コンテキストウィンドウを探索](https://code.claude.com/docs/ja/context-window.md): コンテキストに読み込まれるもの、いつ読み込まれるか
374* [トークン使用量を削減](/docs/ja/costs.md#reduce-token-usage): コンテキストサイズを管理するためのキャッシング以外の戦略374* [トークン使用量を削減](https://code.claude.com/docs/ja/costs.md#reduce-token-usage): コンテキストサイズを管理するためのキャッシング以外の戦略
375* [コストを追跡および削減](/docs/ja/agent-sdk/cost-tracking.md): Agent SDK 呼び出し元のキャッシュトークン追跡と TTL 設定375* [コストを追跡および削減](https://code.claude.com/docs/ja/agent-sdk/cost-tracking.md): Agent SDK 呼び出し元のキャッシュトークン追跡と TTL 設定
376* [プロンプトキャッシング](https://platform.claude.com/docs/ja/build-with-claude/prompt-caching): 基礎となる API メカニズム、ブレークポイント、価格設定376* [プロンプトキャッシング](https://platform.claude.com/docs/ja/build-with-claude/prompt-caching): 基礎となる API メカニズム、ブレークポイント、価格設定