Vertex AI系のセッション履歴とMemory Bankを使い分ける
会話を続ける履歴はSessions、会話をまたいで再利用する情報はMemory Bankで設計する。セッションを保存しただけで、長期記憶の生成と次回の検索まで完了するとは考えない。
用語
- Sessions
- 会話単位のメッセージや操作イベントを保持するGoogle Cloudの機能。
- Memory Bank
- 会話をまたいで使う情報を作成・保持・検索するGoogle Cloudの機能。
- セッションID
- 同じ利用者の複数の会話も区別する識別子。
図と例
Sessionsに会話を保存 → 必要な情報を記憶として生成 → 次回の会話で検索 → 業務の現在状態は別に検証
仮定の例:利用者の説明の好みは次回も参照するが、注文の承認状態は注文DBから取得する。前の会話を保存しただけで「次回も注文承認が有効」と扱わない。
実際のサービス・製品では
Agent Platform Sessions / Memory Bank
Google CloudはSessionsとMemory Bankを別の機能として説明し、会話イベントの保存、記憶の生成、検索してプロンプトへ入れる流れを示している。
資料を読む
解説
同じ会話の再開と、新しい会話での記憶の利用を分けて試す。記憶を生成していない場合、古い情報が残る場合、別ユーザーのIDを指定する場合も確認する。
Agent Platform Sessionsはメッセージやツール呼び出しなどの履歴を扱う。Memory Bankは会話などから得た情報を別の会話でも利用するための保存と検索を担う。記憶の生成や直接作成、検索してプロンプトへ入れる処理を、利用する連携方法に合わせて設計する。セッションIDとユーザーIDは役割が異なり、顧客・利用者との対応はサーバー側で検証する。推定した好みや会話の要約を、最新の契約条件や認可の根拠に使わない。履歴と生成した記憶の保存期間・削除対象も別々に確認する。
トレードオフ
- Sessionsで会話の履歴を保持する
- 得るもの:同じ会話の流れを再開できる
- 払うもの:必要な履歴を選び、長さと保存期間を管理する
- Memory Bankで会話をまたぐ情報を検索する
- 得るもの:必要な情報を次回の会話でも参照できる
- 払うもの:生成する対象・鮮度・利用者ごとの範囲を管理する
さらに学ぶ
チェック
前回の会話に注文の承認が書かれている。新しい会話で発注する前にどうする?
- 注文DBの現在の承認状態と権限を確認する
- Memory Bankに承認とあれば発注する
- 同じユーザーIDなら過去の承認を期限なしで使う
解答と解説
注文DBの現在の承認状態と権限を確認する
会話をまたぐ記憶は現在の注文状態や権限を確定するものではない。過去の記述だけで実行せず、業務の現在状態を照会する。