Strategy ONE
エージェントキャッシュの管理
Strategy One (2026年1月) 以降、ユーザーの質問と回答は各エージェントごとにキャッシュされ、これらのキャッシュを管理できるようになりました。
Agentic キャッシュは、エージェントによって生成される回答の一貫性とパフォーマンスの両方を向上させます。個々のエージェントレベルで動作し、キャッシュされる内容とキャッシュされたコンテンツの再利用方法を細かく制御できます。
Agentic キャッシュの特徴:
-
応答を部分的にキャッシュできるため、複数ステップの回答の個々のコンポーネントを独立して再利用できます。
-
キャッシュ エントリは特定のユーザーではなく、特定のエージェントに関連付けられるため、そのエージェントとやり取りするすべてのユーザー間でキャッシュを再利用できます。
キャッシュ メカニズムは、意味的な類似性の検出に依存しています。ユーザーが質問をすると、システムは各新しい質問が既存の質問とどの程度類似しているかを評価し、キャッシュ グループ (バケットとも呼ばれます) にグループ化します。バケット内のすべての質問は同じ意図のバリエーションと見なされ、同じまたは密接に関連する基礎となるロジック (たとえば、同じ SQL) を共有できます。
キャッシュはエージェントレベルで行われるため、1 人のユーザーによって作成されたキャッシュ エントリは、同じエージェントに意味的に類似した質問をする他のユーザーに対して再利用できます。これにより、応答時間が短縮され、ユーザー ベース全体でより一貫性のある回答が得られます。
Cache Manager は、Agentic キャッシュがどのように動作しているかを完全に可視化します。管理者にパフォーマンスとガバナンス要件を満たすようにキャッシュを微調整および維持するためのツールを提供します。Cache Manager を使用して以下を実行できます:
-
キャッシュ グループ (バケット) とその質問を検査する。
-
キャッシュされた応答の背後にある SQL およびその他の技術的詳細を確認および編集する。
-
キャッシュの有効化と無効化、新しいバケットの作成方法の制御など、キャッシュ動作を管理する。
-
キャッシュ エントリを削除するか、特定のエージェントのキャッシュ全体をクリアする。
Cache Manager を使用する手順については、以下の手順を参照してください:
-
新しいキャッシュ バケットの作成この手順では、キャッシュ バケットの作成および更新方法について説明します。
Agentic キャッシュの使用
Agentic キャッシュを通常の質問フローと組み合わせて、パフォーマンス、制御、柔軟性のバランスを取ります。
プロンプト
プロンプトは常にキャッシュされ、そのキャッシュはグローバル キャッシュ モードとは独立して再利用されます。これにより、これらの重要で頻繁に再利用されるエントリ ポイントの質問に対して最大のパフォーマンスと一貫性が保証されます。プロンプトを作成するには、プロンプトパネルを使用してエージェントにビジュアライゼーションを追加するを参照してください。
通常の質問の推奨フロー
一般的な会話用途では、次のアプローチが推奨されます:
-
ターゲット質問を特定する。次の要件のうち少なくとも 1 つを満たす質問を選択します:
-
カスタムの指示とカラムの説明だけでは完全に信頼性を高めることが難しい
-
SQL に対するより厳格な制御が必要
-
パフォーマンスにとって重要で、頻繁に質問される
-
-
バケットを作成して調整する。ターゲット質問について:
-
質問をすることでキャッシュ バケットを作成します。
-
回答とロジックが意図した動作と正確に一致するように、カラム (アトリビュート/メトリック) および/または SQL を調整します。
-
-
Existing Only キャッシュ モードに切り替える。
-
重要なバケットが準備されたら、キャッシュ モードを Existing only に設定します。これにより、キャッシュは事前定義された管理者がキュレートしたバケットに制限され、新しいバケットが自動的に作成されるのを防ぎます。
-
このセットアップにより、ユーザーは次のメリットを得られます:
-
キュレートされた質問に対して予想される SQL と結果が得られます。ロジックは固定され、管理者によって維持されるためです。
-
エージェントがクエリを再計算する代わりに既存のキャッシュを再利用できる場合のパフォーマンス向上。
再利用されたキャッシュと再計算されたキャッシュ
エージェントレベルでのキャッシュの再利用は、いくつかの要因に依存します。一致するバケットが存在する場合でも、システムはパイプラインの一部を再計算する必要がある場合があります。
次の場合、キャッシュされた SQL を参照として使用して、SQL、実行、回答、およびビジュアリゼーションを再計算する必要があります:
-
動的な時間または動的なユーザー コンテキスト
先週、昨年、今日、今月、私のマネージャー、私のチーム、私などの表現を含む質問は、時間またはユーザー コンテキストが時間の経過とともにまたはユーザーごとに変化するため、再計算が必要です。
-
データの変更 (キャッシュ日付後のキューブの更新)
基礎となるキューブの更新時間がキャッシュのタイムスタンプより後の場合、以前にキャッシュされた実行は古くなっている可能性があります。システムは SQL を再実行し、回答とビジュアリゼーションを再生成します。
-
同じパターン、異なるパラメーター
質問がバケット パターンと一致するが、特定のパラメーターが異なる場合 (たとえば、異なる地域、製品、または期間)、キャッシュされた SQL 構造はテンプレートとして再利用されますが:
-
パラメーター化された SQL が再生成されます
-
クエリが再実行されます
-
新しい回答とビジュアリゼーションが生成されます
-
これらすべての状況において、キャッシュは SQL ブループリントと分析構造を提供することで価値を提供し、結果が最新でコンテキスト的に正しいことを保証します。
Cache Manager へのアクセス
要件
Cache Manager にアクセスするには、Strategy AI: エージェントの管理権限が必要です。
-
新しいボットを作成するか、既存のエージェントを開き、右上の編集
アイコンをクリックします。 -
ツールバーで、Cache Manager アイコン
をクリックします。
キャッシュ モードの変更
-
[Caching Buckets] ペインで設定アイコン
をクリックします。
-
Caching Mode ドロップダウン リストから、次のいずれかを選択します:
-
Full Caching:ユーザーが質問するたびにキャッシュ エントリが生成されます。質問は類似性に基づいてグループ/バケットを形成できます。
-
Existing Only:新しいキャッシュ グループ/バケットは作成されません。既存のキャッシュ バケットのみが使用されます。新しい質問は、意図と使用されるカラムによって類似していると検出された場合、既存のバケットに追加されます。
-
Turn Off:キャッシュが無効になり、新しいキャッシュの生成が防止されます。
プロンプトは常にキャッシュされ、キャッシュが無効になっている場合でも常にキャッシュを再利用します。
-
-
Cache Manager を閉じます。
-
エージェントを保存します。
すべてのキャッシュの削除
-
[Caching Buckets] ペインで設定アイコン
をクリックします。
-
Delete All Caches をクリックします。
- Cache Manager を閉じます。
-
エージェントを保存します。
新しいキャッシュ バケットの作成
この手順では、キャッシュ バケットの作成および更新方法について説明します。
-
[Caching Buckets] ペインで設定アイコン
をクリックします。 -
Caching Mode ドロップダウン リストから、Full Caching を選択します。これにより、新しいユーザーの質問が新しいキャッシュ エントリとバケットを作成できるようになります。
-
Cache Manager を閉じます。
-
エージェントに新しい質問をします。
-
[Caching Buckets] ペインに新しいバケットが表示されます。以下の例では、クエリ「Identify the product sub-category with the highest total profit」を実行しています。エージェントのクエリの解釈が表示されます。この場合は「Identify the product sub-category with the highest summed profit」です。クエリへの回答に使用されたオブジェクトも提供されます。この例では、Sub-Category_ID と Profit です。
-
バケットをクリックして開きます。右側のペインには、バケットに含まれる質問、生成された SQL、および回答の構築に使用されたアトリビュートとメトリックが表示されます。
-
キャッシュ エントリの完全な回答を展開して確認するには、質問の横にある右矢印をクリックします。
バケットを作成した最初の質問は親質問として扱われ、類似度スコア 100 で表示されます。以下の例では、単一の質問のみが表示されています。
-
このバケットにエントリを追加するには、エージェントチャットで意味的に類似した質問をします。たとえば、元のクエリを言い換えて「Find product sub-category with highest profit.」と質問します。これは類似していると評価され、十分に近い場合は、親に対する独自の類似度スコアを持つ同じバケットに追加されます。
以下の画像では、青いキャッシュ アイコン
は、キャッシュされたデータを使用して回答が生成されたことを示しています。キャッシュを使用せずに回答を再生成するには、キャッシュ アイコン
をクリックします。
このような意味的に類似した言い換えられた質問がされると、Cache Manager で元の (親) 質問と同じバケットに自動的にグループ化されます。バケット ビューでは、この新しい質問は、親質問とどの程度一致するかを示す類似度スコアを持つ子エントリとして表示されます。
-
別のバケットを作成するには、前のものとは意味的に関連しない完全に新しい質問をします。たとえば、エージェントに「What is the average order value in Central region during Q2 2014?」と質問します。
この質問は異なる意図を表すため、キャッシュ メカニズムは Cache Manager に新しいバケットを作成します。以下に示す Cache Manager では、この質問に対応する別のバケットが表示されます。これには、独自の親エントリ、生成された SQL、および関連するアトリビュートとメトリックが含まれています。
バケットの子には、まったく同じ SQL を再利用する言い換えられた質問だけでなく、全体的な意図と構造を維持しながらわずかに異なる SQL 条件になる質問も含まれます。たとえば、「What is the average order value in EMEA region during Q1 2014?」などの質問は、「What is the average order value in Central region during Q2 2014?」と同じバケットにグループ化できます。この場合、基礎となるクエリ パターン (地域と期間ごとの平均注文額) は同じままですが、個々のフィルター値 (地域、四半期、年) が異なります。
キャッシュ バケットの変更
Agentic キャッシュの主な利点は、以前に質問された質問とそのキャッシュされた回答をユーザーが制御できることです。エージェントが不正確または最適でない結果を返す場合、Cache Manager を使用してその回答の生成方法を調整できます。具体的には、次のことができます:
-
そのキャッシュされたエントリに使用されるアトリビュートとメトリックを変更して、ロジックが分析要件と一致するようにします。
-
データを取得するために使用される基礎となる SQL クエリを編集して、フィルター、結合、またはその他のクエリの詳細を修正します。
-
複数のバケットが同じ分析意図を表していることを識別したときにキャッシュ バケットをマージして、共通のキャッシュ グループを共有するようにします。
-
バケット間で個々のエントリを移動して、特定の質問をより適切な親バケットの下に再グループ化します。
これらの変更により、既存のキャッシュ エントリを調整して、同じまたは類似の質問に対する将来の回答が正確で期待と一致するようにできます。
使用されるカラムの変更
キャッシュされたエントリのカラム (アトリビュートとメトリック) を変更することは、初期の回答が構造的には正しいが、望ましいレベルで集計または詳細化されていない場合に便利です。
たとえば、「Where is lowest shipping cost on average?」という質問がされたとき、エージェントは最も低い平均配送コストを持つ国で応答する場合がありますが、必要な集計レベルは地域です。
この場合、Cache Manager を使用して:
-
対応するバケットとキャッシュされたエントリを開きます。
-
Country アトリビュートを Region に置き換えて、クエリが地域レベルで結果を集計するようにします。
この変更が保存されると、同じ質問「Where is lowest shipping cost on average?」の後続の実行では、更新されたキャッシュ エントリが再利用され、地域別に集計された結果が返されます。
さらに、キャッシュされたエントリのアトリビュートとメトリックを追加または削除して、結果セットを分析意図とより適切に整合させることができます。たとえば:
-
より多くのコンテキストを提供するために、より多くのメトリック (総出荷数や注文数など) を追加します。
-
結果を簡素化するために、無関係なアトリビュートを削除します。
キャッシュされたエントリに関連付けられているアトリビュートとメトリックを調整することで、繰り返しおよび類似の質問に、意図した分析に最も適合する方法で回答されます。
-
エージェントでクエリを質問します。例のクエリ「Where is lowest shipping cost on average?」を使用し、国である Equatorial Guinea の回答が提供されます。
-
Cache Manager へのアクセス。キャッシュされたバケットは Country_ID を使用しています。
-
例の問題を修正するには、バケットからCountry_ID をデータセット パネルにドラッグします。データセット パネルからRegion_ID をバケットにドラッグします。
-
Cache Manager を閉じます。
-
エージェントで、質問の上にカーソルを置き、もう一度質問
をクリックします。今度は、国ではなく地域である EMEA が回答になります。キャッシュされたデータを使用して回答が生成されたことを示す青いキャッシュ アイコン
に注目してください。
-
エージェントを保存します。
SQL クエリの編集
キャッシュされたエントリの SQL を変更することで、単純なアトリビュートやメトリックの変更を超えて、回答の計算方法を完全に制御できます。
前の例を続けると、「Where is lowest shipping cost on average?」と質問した後、初期の回答は Country 別に集計される場合がありますが、必要な内訳は Region と State です。アトリビュートを変更するだけでなく、Cache Manager でキャッシュされたエントリの基礎となる SQL を直接編集できます。
たとえば、SQL を変更して:
-
グループ化レベルを Country から Region と State に変更します。
-
フィルター、結合、または計算ロジックを追加または調整します。
-
元のクエリの一部ではない追加のカラムまたは派生メトリックを含めます。
更新された SQL を保存すると、同じ質問の後続の実行でこの変更されたクエリが再利用されるため、回答は Region と State による集計 (または SQL で定義されたその他のロジック) を反映します。一般に、SQL に対する有効な変更を適用して、キャッシュされた回答がレポートおよび分析要件と正確に一致するようにできます。
-
エージェントでクエリを質問します。例のクエリ「Where is lowest shipping cost on average?」を使用し、前の手順でキャッシュ バケットが更新されたため、EMEA 地域の回答が提供されます。
-
Cache Manager へのアクセス。キャッシュされたバケットは Region_ID を使用しています。
-
バケットを選択して、右側のペインに詳細を表示します。
-
View SQL をクリックします。SQL Query ウィンドウが開きます。
-
例の問題を修正するには、以下に示すように、両方の SELECT ステートメント、GROUP BY ステートメント、および ORDER BY ステートメントに "State_ID" を入力します。
-
ツールバーで、Verify SQL をクリックして変更が有効であることを確認します。下部の SQL Output をチェックして、回答が正しく見えることを確認します。
-
ツールバーで、Save SQL をクリックします。
-
保存成功メッセージが表示されたら、SQL Query ウィンドウを閉じます。
-
Cache Manager を閉じます。
-
エージェントで、質問の上にカーソルを置き、もう一度質問
をクリックします。今度は、地域だけでなく、Africa 地域の Matabeland North 地域が回答になります。キャッシュされたデータを使用して回答が生成されたことを示す青いキャッシュ アイコン
に注目してください。
-
エージェントを保存します。
バケットの管理
Cache Manager を使用してキャッシュ バケットを再構築し、質問が論理的にグループ化される方法をより適切に反映させます。
バケットのマージ
複数のバケットが明らかに同じ分析意図を表している場合、バケットをマージします。いくつかのほぼ重複したグループを維持する代わりに、それらを単一のバケットに結合して、すべての関連する質問が同じキャッシュ ロジックを共有し、1 か所で維持されるようにします。
- Cache Manager へのアクセス。
-
マージする各バケットのチェック ボックスを選択します。選択したバケットの 1 つの横にあるメニュー アイコン
をクリックし、Merge Together を選択します。
-
[Merge Interpretation Buckets] ウィンドウが表示されます。マージ先のバケット、つまり名前とプロパティを保持するバケットを選択します。他のバケットはこのターゲット バケットに追加されます。
-
行の View SQL をクリックして、バケットの SQL を確認できます。
SQL Query ウィンドウが開きます。SQL を確認したら、ウィンドウを閉じます。
-
Merge All をクリックします。
- Cache Manager を閉じます。
-
エージェントを保存します。
バケット間でアイテムを移動
アイテム (特定の質問とその回答) を 1 つのバケットから別のバケットに移動することは、最初に誤ってグループ化された場合に便利です。これにより、キャッシュを「再提出」して、各質問がそのロジックが意図と最もよく一致するバケットに含まれるようにできます。
- Cache Manager へのアクセス。
-
バケットを選択して、右側のペインに詳細を表示します。
-
移動するアイテムを選択し、次のいずれかを実行します:
-
その横にあるメニュー アイコン
をクリックし、Move To を指し、移動先のバケットを選択します。
-
[Caching Buckets] ペインの別のバケットにドラッグします。
-
-
Cache Manager を閉じます。
-
エージェントを保存します。
アイテムはターゲット バケットに移動されます。
アイテムから新しいバケットを作成
バケット内の質問が、残りのグループとロジックを共有すべきでない明確なユース ケースを表していることが判明する場合があります。その場合、そのアイテム (特定の質問とその回答) から新しいバケットを作成し、実質的に独自のキャッシュ グループの親に昇格させ、独自に管理されるロジックを持たせます。
- Cache Manager へのアクセス。
-
バケットを選択して、右側のペインに詳細を表示します。
-
移動するアイテムを選択し、その横にあるメニュー アイコン
をクリックし、Move To を指し、Create New Bucket を選択します。
アイテムは元のバケットから削除されます。
アイテムは、アイテムにちなんで名前が付けられた新しいバケットに含まれるようになりました。
-
Cache Manager を閉じます。
-
エージェントを保存します。
解釈の再生成
Custom Instructions (CI) が変更されると、既存のキャッシュされたアイテムの解釈を再生成する必要がある場合があります。質問間の類似性はこれらの解釈に基づいて評価されるため、CI が変更されると、質問の解釈も変わる可能性があります。これはバケットの割り当てと類似度スコアに影響します。
[Regenerate Interpretations] アクションは、最新の CI に従って、現在のバケット下のキャッシュされたアイテムの解釈を更新します。
再生成中、バケット内のすべての子アイテムが削除され、親アイテムのみが保持されます。後続のユーザーの質問は、新しい解釈に基づいてバケットを再入力します。
-
エージェントで、[Advanced Settings] パネルのカスタム指示を変更します。
-
以下の例では、カスタム指示には、平均配送コストを平均配送コストに変更したり、収益、利益、売上を区別したりするなどの詳細が含まれています。
-
詳細を削除し、紹介段落のみを残します。
-
-
エージェントを保存します。
-
再生成する各バケットのチェック ボックスを選択します。選択したバケットの 1 つの横にあるメニュー アイコン
をクリックし、Regenerate Interpretations を選択します。以下の例では、すべてのバケットが選択されています。「where is lowest shipping cost on average」は、元のカスタム指示によって決定されたように、最低平均配送コストと解釈されます。
-
解釈再生成メッセージが表示された後、バケットを確認します。「where is lowest shipping cost on average」は、平均ではなく平均配送コストと解釈されます。
-
Cache Manager を閉じます。
-
エージェントを保存します。
