Vertex AI Agent Engine Memory Bank 總覽

Vertex AI Agent Engine Memory Bank 可根據使用者與虛擬服務專員的對話,動態生成長期記憶。長期記憶是個人化資訊,特定使用者可在多個工作階段中存取。代理程式可使用記憶內容,為使用者提供個人化回覆,並建立跨工作階段的連續性。

總覽

記憶庫可協助您管理記憶,以便自訂代理與使用者互動的方式,以及管理脈絡視窗。記憶體庫會為每個範圍維護獨立的記憶體集合。每項記憶體都是獨立的資訊片段,可用於擴充代理程式可用的情境。例如:

{
  "name": "projects/.../locations/.../reasoningEngines/.../memories/...",
  "scope": {
    "agent_name": "My agent"
  },
  "fact": "I use Memory Bank to manage my memories."
}

記憶體庫包含下列功能:

  • 記憶內容生成:使用大型語言模型 (LLM) 建立、修正及管理記憶內容。

    • 記憶擷取:從來源資料中擷取最有意義的資訊,並儲存為記憶。

    • 記憶體整合:將新擷取的資訊與現有記憶體整合,讓記憶體隨著新資訊的擷取而演進。您也可以將預先擷取的記憶內容 (例如代理程式或人工輔助認為有意義的資訊) 與現有記憶內容合併。

    • 非同步生成:記憶內容可在背景生成,因此代理程式不必等待記憶內容生成完畢。

    • 可自訂的擷取功能:提供特定主題和少量範例,設定記憶體庫認為有意義的資訊

    • 多模態理解:處理多模態資訊,生成並保留文字洞察資料。

  • 代管儲存和擷取:充分運用全代管、持續性且可存取的記憶體儲存空間。

  • 代理程式整合:將記憶體庫連結至代理程式,以便協調呼叫,產生及擷取記憶體。

    • Agent Development Kit (ADK) 整合:使用內建 ADK 工具和 VertexAiMemoryBankService從 ADK 型代理協調呼叫,以便讀取及寫入 Memory Bank。

    • 其他架構:將 Memory Bank 程式碼包裝在工具和回呼中,以便協調記憶體生成和擷取作業。

用途

您可以運用記憶庫,將無狀態的服務專員互動轉變為有狀態的情境式體驗,讓服務專員隨著時間推移記住、學習及調整。Memory Bank 非常適合需要下列項目的應用程式:

  • 長期個人化:打造專為個別使用者設計的體驗。記憶庫會將記憶體範圍限定在特定身分,讓代理在多個工作階段中記住使用者的偏好設定、記錄和重要詳細資料。

    • 示例:客服專員不必再次詢問,就能記住使用者過去支援單中的重要資訊和產品偏好設定。
  • LLM 驅動的知識擷取:需要自動識別並保留對話或多模態內容中的重要資訊,且不需手動介入時使用。

    • 例如:研究代理程式會閱讀一系列技術論文,並建構重要發現、方法和結論的整合記憶體。
  • 動態且不斷演進的脈絡:如果需要非靜態的知識來源,請使用記憶庫。Memory Bank 的設計宗旨是持續整合代理提供的新資訊,並在有新資料時修正及更新儲存的記憶內容。確保代理程式一律根據最新且正確的內容提供回覆。RAG 的外部知識庫是靜態的,但記憶體庫可根據代理程式提供的背景資訊演進。

應用實例

Vertex AI Agent Engine Memory Bank 概念總覽

您可以搭配使用 Memory Bank 和 Vertex AI Agent Engine 工作階段,透過下列程序從儲存的工作階段生成記憶體:

  1. (工作階段) CreateSession:在每次對話開始時,建立新的工作階段。代理程式使用的對話記錄僅限於這個工作階段。工作階段包含使用者與代理程式互動時,按時間順序排列的訊息和動作 (SessionEvents)。所有工作階段都必須有使用者 ID,這個工作階段擷取的記憶內容 (請參閱 GenerateMemories) 會對應到這個使用者。

  2. (工作階段) AppendEvent:使用者與服務專員互動時,系統會將事件 (例如使用者訊息、服務專員回覆、工具動作) 上傳至工作階段。這些事件會保留對話記錄,並建立對話記錄,可用於生成回憶。

  3. (工作階段) ListEvents:使用者與代理程式互動時,代理程式會擷取對話記錄。

  4. (記憶庫) 生成或建立回憶集錦:

    • GenerateMemories:在指定間隔 (例如每個工作階段或每一回合結束時),代理程式可以觸發記憶體,使用對話記錄生成記憶體。系統會從對話記錄自動擷取使用者資訊,以便在目前或日後的工作階段中使用。

    • CreateMemory:代理程式可直接將記憶寫入記憶體庫。舉例來說,代理程式可以決定何時應寫入記憶體,以及應儲存哪些資訊 (記憶體即為工具)。如要讓代理程式進一步控管擷取的資訊,請使用 CreateMemory

  5. (記憶庫) RetrieveMemories:使用者與服務專員互動時,服務專員可以擷取儲存的相關記憶內容。您可以擷取所有記憶內容 (簡單擷取),也可以只擷取與目前對話最相關的記憶內容 (相似度搜尋擷取)。然後將擷取的回憶插入提示。

快速入門導覽課程

如要開始使用 Memory Bank,請參閱下列快速入門指南:

  • 使用 REST API 快速入門:按照 REST API 快速入門導覽課程的說明,直接對 Vertex AI Agent Engine Sessions 和 Memory Bank 進行 API 呼叫。

  • 使用 Agent Development Kit (ADK) 快速入門:如果您希望 ADK 代理為您自動調度對 Vertex AI Agent Engine Sessions 和 Memory Bank 的呼叫,請按照 Agent Development Kit (ADK) 快速入門導覽課程操作。

提示詞注入的安全性風險

除了 Vertex AI 共同責任中列出的安全責任外,使用長期記憶時,請考慮提示注入和記憶體中毒的風險,這可能會影響您的代理程式。記憶體中毒是指記憶體庫中儲存了錯誤資訊。代理程式可能會在日後的工作階段中,根據這類不實或惡意資訊運作。

如要降低記憶體中毒的風險,請採取下列做法:

  • Model Armor:使用 Model Armor 檢查傳送至記憶體庫或來自代理程式的提示。

  • 對抗性測試:主動模擬攻擊,測試 LLM 應用程式是否有提示注入漏洞。這通常稱為「紅隊演練」。

  • 沙箱執行:如果代理程式可以執行或與外部/重要系統互動,這些動作應在沙箱環境中執行,並採取嚴格的存取控管和人工審查措施。

詳情請參閱「Google 的安全 AI 代理程式做法」。

後續步驟