エージェントのメモリとセッション
コンテキストを保持するために、エージェントには2種類の状態が必要です。現在処理しているインタラクションの状態と、ある会話から次の会話へと引き継がれる永続的な知識です。Databricksは、それぞれに対してフルマネージドのストアを提供します。どちらもLakebaseを基盤とし、任意のフレームワークで構築されたエージェントから使用できます。
- 管理されたエージェントセッションには、エージェントのセッション状態(エージェントまたはフレームワークが1回のインタラクションのために保持する状態)が保存されます。通常、これは会話履歴(メッセージ、ツール呼び出し、および結果の順序付けられたトランスクリプト)ですが、LangGraphグラフなど、フレームワークが永続化する任意の状態である可能性があります。エージェントはターン起動時にこれを読み取り、インタラクションのランが進むにつれて追加していきます。
- マネージドエージェントメモリは、セマンティック検索によって取得され、エージェントがその後の別の会話で思い出す永続的な事実、好み、決定を保存します。
セッションとメモリの関係
セッション のスコープは1つのインタラクションに限定されます。会話のトランスクリプトなど、エージェントがそのインタラクションを続行するためにリプレイするワーキングステートです。セッションはインタラクション内で成長し、それ単体で完了します。
メモリ のスコープはインタラクションではなくサブジェクトに設定されます。ユーザーの安定した好み、過去の決定、進行中のプロジェクトなど、将来の無関係な会話でも引き続き重要となる永続的な事実がこれに該当します。どの会話で表示されたかに関係なく、エージェントは関連性があるときはいつでもそれらを呼び出します。
会話内の保持する価値がある部分で、その2つが結びつきます。セッションが蓄積されるにつれて、エージェント(またはアプリケーション)はそこから永続的な事実を抽出し、メモリに書き込みます。その後、セッションがクリアされるか期限切れになりますが、メモリは保持されます。ストアが独立している理由はここにあります。セッションやセッションストア全体を削除しても、メモリストアに保持されているメモリは削除されません。
ほとんどの使用例では両方を組み合わせて使用します。セッションにより、エージェントは会話内で継続性を維持でき、メモリにより、会話を跨いで継続性を維持できます。それぞれを単独で使用することもできます。インタラクション内の状態のみが必要な場合はセッションを単独で使用し、フレームワークがすでにセッション状態を管理している場合はメモリを単独で使用します。
起動方法を選択
-
- マネージドエージェントセッション
- エージェントのセッション状態を永続化および再開して、再起動後もインタラクションが維持されるようにし、後続の処理で完全なコンテキスト (メッセージ、ツール呼び出し、推論を含む) を再構築します。
-
- マネージドエージェントメモリ
- 個々の会話を超えてユーザーの好み、事実、決定事項を記憶し、エージェントが以前に学習した内容で応答をパーソナライズします。
レガシーアプローチ
エージェントメモリに対する以下の以前のアプローチはレガシーであり、新しいエージェントには推奨されません:
- 管理対象エージェントメモリ(レガシー):Unity Catalogによって管理される、以前の管理対象メモリウムストア。