Agent Platform メモリバンクを使用すると、ユーザーとエージェントの会話に基づいて長期記憶を動的に生成できます。これらの記憶は、複数のセッションにわたって保持されるパーソナライズされた情報であり、エージェントはコンテキストと継続性に合わせて応答を適応させ、パーソナライズできます。
機能
メモリバンクを使用すると、記憶を管理して、エージェントがユーザーとやり取りする方法をパーソナライズし、コンテキスト ウィンドウを管理できます。メモリバンクは、スコープごとに分離された記憶のコレクションを維持します。各記憶は、エージェントが利用できるコンテキストを拡張するために使用できる、独立した自己完結型の情報です。次に例を示します。
{
"name": "projects/.../locations/.../reasoningEngines/.../memories/...",
"scope": {
"agent_name": "My agent",
"user": "my user ID"
},
"fact": "I use Memory Bank to manage my memories."
}
メモリバンク には次の機能があります。
メモリーの生成: 大規模言語モデル(LLM)を使用して、メモリーを作成、改良、管理します。
記憶の抽出: ソースデータから最も意味のある情報のみを抽出して、記憶として保持します。
記憶の統合: 新しく抽出された情報を 既存の記憶と統合し、新しい情報が 取り込まれるにつれて記憶を進化させます。事前に抽出された記憶(エージェントや人間によるループが意味があると考える情報など)を既存の記憶と統合することもできます。
非同期生成: バックグラウンドでメモリーの生成を行うため、エージェントはメモリーの生成が完了するまで待つ必要はありません。
継続的なイベント取り込み: イベント取り込みを使用して会話イベントをストリーミングして管理します。これにより、構成したバッチ処理ルールに基づいてメモリーの生成が自動的にトリガーされます。
カスタマイズ可能な抽出: 特定の情報 メモリバンク が 意味があると考える情報を構成します 特定の トピック とフューショットの例を指定して。
マルチモーダルな理解: マルチモーダル情報を処理して、テキストによる分析情報を生成 して保持します。
マネージド ストレージと取得: フルマネージドで永続的で アクセス可能なメモリストアを利用できます。
ID 間でのデータの分離: 記憶の統合と取得 は、特定の ID に分離されます。
永続的でアクセス可能なストレージ: Agent ランタイム、ローカル環境、その他のデプロイ オプションなど、複数の環境から アクセスできる記憶を保存します。
自動有効期限: 記憶に有効期間(TTL)を設定して、 古い情報が自動的に削除されるようにします。 挿入または生成された記憶に TTL が自動的に 適用されるように、Memory Bank インスタンスを 構成します。
記憶のリビジョン: 新しい情報が取り込まれるにつれて記憶がどのように変化するかを確認できる記憶 のリビジョンを自動的に作成して維持します。
制限付き権限: IAM 条件を使用して、特定のスコープの記憶を読み取りまたは書き込みできるプリンシパルを 制限します。
エージェントの統合: メモリバンクをエージェントに接続して、記憶の生成と取得の呼び出しをオーケストレートできるようにします。
Agent Development Kit(ADK)の統合: 組み込みの ADK ツールと
VertexAiMemoryBankServiceを使用して、ADK ベースのエージェントからの呼び出しをオーケストレートし、Memory Bank からの読み取りと書き込みを行います。その他のフレームワーク: Memory Bank コードをツール とコールバックでラップして、記憶の生成と取得をオーケストレートします。
ユースケース
Memory Bank を使用すると、ステートレスなエージェントのやり取りを、エージェントが時間とともに記憶、学習、適応するステートフルなコンテキスト対応のエクスペリエンスに変換できます。Memory Bank は、次の要件を満たすアプリケーションに最適です。
長期的なパーソナライズ: 個々のユーザーに合わせてカスタマイズされたエクスペリエンスを構築します。Memory Bank は、記憶を特定の ID にスコープ設定することで、エージェントが複数のセッションにわたってユーザーの好み、履歴、重要な詳細を記憶できるようにします。
- 例: ユーザーの過去のサポート チケットや商品の好みに関する重要な情報を記憶し、再度質問する必要のないカスタマー サービス エージェント。
LLM による知識の抽出: 手動操作なしで、会話や マルチモーダル コンテンツから最も重要な情報を自動的に 識別して保持する必要がある場合に使用します。
- 例: 一連の技術論文を読み、主な調査結果、方法論、結論の統合された記憶を構築する研究エージェント。
動的で進化するコンテキスト: 静的でない知識ソースが必要な場合は、メモリバンクを使用します。メモリバンクは、エージェントからの新しい情報を継続的に統合し、新しいデータが利用可能になると、保存された記憶を改良して更新するように設計されています。これにより、エージェントが依存するコンテキストが常に最新かつ正確になります。RAG には静的な外部ナレッジベースがありますが、メモリバンクはエージェントから提供されるコンテキストに基づいて進化できます。
使用例

Agent Platform Sessions とともにメモリバンクを使用すると、次のプロセスで保存されたセッションから記憶を生成できます。
(セッション)
CreateSession: 会話の開始時に新しいセッションを作成します。エージェントが使用する会話履歴は、このセッションに限定されます。セッションには、ユーザーとエージェント間のやり取りのメッセージとアクション(SessionEvents)の時系列順のシーケンスが含まれます。すべてのセッションにユーザー ID が必要です。このセッションで抽出されたメモリ(GenerateMemoriesを参照)はこのユーザーにマッピングされます。(セッション)
AppendEvent: ユーザーがエージェントとやり取りすると、イベント (ユーザー メッセージ、エージェントの応答、ツール アクションなど)が セッションにアップロードされます。イベントは会話履歴を保持し、記憶の生成に使用できる会話の記録を作成します。(セッション)
ListEvents: ユーザーがエージェントとやり取りすると、エージェントは 会話履歴を取得します。(メモリーバンク) 記憶を生成または作成する:
GenerateMemories: エージェントは会話履歴を使用してメモリを生成するトリガーを、指定された間隔(セッションの終了時やターンの終了時など)で起動できます。ユーザーに関する事実が会話履歴から自動的に抽出され、現在または将来のセッションで使用できるようになります。CreateMemory: エージェントはメモリをメモリバンクに直接書き込むことができます。たとえば、エージェントはメモリを書き込むタイミングや保存する情報を決定できます(メモリをツールとして使用)。エージェントが抽出するファクトをより詳細に制御する場合は、CreateMemoryを使用します。
(メモリバンク)
RetrieveMemories: ユーザーがエージェントとやり取りすると、エージェントはそのユーザーについて保存された記憶を取得できます。すべての記憶を取得することも(単純な取得)、現在の会話に最も関連性の高い記憶のみを取得することもできます(類似性検索による取得)。 その後、取得した思い出をプロンプトに挿入できます。
クイックスタート
次のクイックスタートを使用してメモリバンクを使ってみましょう。
REST API を使用したクイックスタート: REST API クイックスタートに沿って、 セッションと メモリバンクに API 呼び出しを直接行います。
Agent Development Kit (ADK)を使用したクイックスタート: ADK エージェントにセッションと メモリバンク への呼び出しを オーケストレートする場合は、 Agent Development Kit(ADK)のクイックスタートに沿って操作します。
プロンプト インジェクションのセキュリティ リスク
Agent Platform の責任の共有で説明されているセキュリティ上の責任に加えて、長期記憶を使用する際にエージェントに影響を与える可能性のあるプロンプト インジェクションとメモリ ポイズニングのリスクを考慮してください。メモリ ポイズニングは、誤った情報がメモリバンクに保存されたときに発生します。エージェントは、その後のセッションでこの誤った情報や悪意のある情報に基づいて動作する可能性があります。
メモリ ポイズニングのリスクを軽減するには、次の手順を実施します。
Model Armor: Model Armorを使用して、メモリバンクに送信されるプロンプトやエージェントから送信されるプロンプトを検査します。
敵対的テスト: 攻撃をシミュレートして、プロンプト インジェクションの脆弱性について LLM アプリケーションを事前にテストします。これは一般に「レッドチーム」と呼ばれます。
サンドボックス実行: エージェントが外部システムや重要なシステムを実行または操作できる場合、これらのアクションは厳格なアクセス制御と人間によるレビューが行われるサンドボックス環境で実行する必要があります。
詳細については、Google のセキュア AI エージェントに対するアプローチをご覧ください。