借助 Vertex AI Agent Engine 记忆库,您可以根据用户与智能体的对话动态生成长期记忆。长期记忆是可供特定用户在多个会话中访问的个性化信息。智能体可以使用记忆来个性化用户回复,并实现跨会话的连续性。
概览
记忆库帮助您管理记忆,从而您可以个性化您的智能体与用户互动的方式,并管理上下文窗口。对于每个范围,记忆库都会维护一个独立的记忆集合。每段记忆都是独立且自成一体的信息,可用于扩展您的智能体可用的上下文。例如:
{
"name": "projects/.../locations/.../reasoningEngines/.../memories/...",
"scope": {
"agent_name": "My agent"
},
"fact": "I use Memory Bank to manage my memories."
}
记忆库包含以下功能:
记忆生成:使用大语言模型 (LLM) 创建、优化和管理记忆。
记忆提取:仅从源数据中提取最有意义的信息,将其持久化为记忆。
记忆整合:将新提取的信息与现有记忆整合,使记忆能够随着新信息的注入而不断演变。您还可以将预提取的记忆(例如智能体或人机协同系统认为有意义的信息)与现有记忆整合起来。
异步生成:记忆可以在后台生成,这样智能体就不必等待记忆生成完成。
可自定义提取:通过提供特定的主题和少样本示例,配置记忆库认为有意义的信息。
多模态理解:处理多模态信息,生成并持久化文本分析洞见。
托管式存储和检索:受益于全托管式、持久且可访问的记忆存储区。
跨身份数据隔离:记忆整合和检索仅限于特定身份。
持久且可访问的存储空间:存储可从多个环境(包括 Vertex AI Agent Engine 运行时、本地环境或其他部署选项)访问的记忆内容。
相似度搜索:使用相似度搜索功能检索记忆,且搜索范围限定为特定身份。
自动到期:为记忆设置存留时间 (TTL),以确保过时信息会自动删除。配置记忆库实例,以便 TTL 自动应用于插入或生成的记忆。
智能体集成:将记忆库连接到智能体,以便智能体编排调用来生成和检索记忆。
智能体开发套件 (ADK) 集成:使用内置 ADK 工具和
VertexAiMemoryBankService
来编排基于 ADK 的智能体发起的调用,以从记忆库读取数据和向记忆库写入数据。其他框架:将记忆库代码封装在工具和回调中,以编排记忆生成和检索。
使用场景
您可以使用记忆库将无状态的智能体互动转变为有状态的上下文感知体验,让智能体能够随着时间的推移去进行记忆、学习和自适应。记忆库非常适合有以下要求的应用:
长期个性化:打造为每位用户量身定制的体验。记忆库会将记忆的范围限定于特定身份,从而使智能体能够跨多个会话记住用户的偏好、对话记录和关键细节。
- 示例:一个客户服务智能体可以记住用户过去支持服务工单和产品偏好中的关键信息,而无需再次询问。
LLM 驱动的知识提取:当您需要自动识别和持久化对话或多模态内容中最重要的信息,而无需人工干预时使用。
- 示例:一个研究智能体可以读取一系列技术论文,并构建一个由关键发现、方法论和结论组成的整合记忆。
不断变化的动态上下文:如果您需要非静态的知识来源,则可以使用记忆库。记忆库旨在持续整合来自智能体的新信息,并在有新数据可用时优化和更新存储的记忆。这样可确保您的智能体所依赖的上下文始终是最新且准确的。RAG 具有静态的外部知识库,而记忆库可以根据智能体提供的上下文信息不断演变。
用法示例
您可以将记忆库与 Vertex AI Agent Engine 会话搭配使用,以通过以下流程从存储的会话生成记忆:
(会话)
CreateSession
:在每次对话开始时,创建新会话。智能体使用的对话历史记录范围限定为此会话。会话包含用户与智能体之间互动按时间顺序排列的消息和操作 (SessionEvents
) 序列。所有会话都必须具有用户 ID;此会话的提取记忆(请参阅GenerateMemories
)会映射到此用户。(会话)
AppendEvent
:当用户与代理互动时,事件(例如用户消息、代理回答、工具操作)会上传到会话。这些事件会保留对话历史记录,并创建可用于生成记忆的对话记录。(会话)
ListEvents
:当用户与代理互动时,代理会检索对话历史记录。(记忆库)生成或创建记忆:
GenerateMemories
:按照指定的时间间隔(例如每个会话结束时或每个对话轮次结束时),代理可以触发使用对话历史记录生成记忆。系统会自动从对话历史记录中提取有关用户的事实信息,以便在当前会话或未来会话中使用。CreateMemory
:您的代理可以直接将记忆写入记忆库。例如,智能体可以决定何时写入记忆以及应保存哪些信息(即“记忆即工具”)。如果您希望智能体对提取的事实有更多控制权,请使用CreateMemory
。
(记忆库)
RetrieveMemories
:当用户与代理互动时,代理可以检索保存的有关该用户的记忆。您可以检索所有记忆内容(简单检索),也可以仅检索与当前对话最相关的记忆内容(相似性搜索检索)。然后,您可以将检索到的记忆插入到提示中。
快速入门
您可以按照以下快速入门开始使用记忆库:
使用 REST API 快速入门:按照 REST API 快速入门直接向 Vertex AI Agent Engine 会话和记忆库发出 API 调用。
使用智能体开发套件 (ADK) 快速入门:如果您希望 ADK 智能体为您编排对 Vertex AI Agent Engine 会话和记忆库的调用,请按照智能体开发套件 (ADK) 快速入门中的说明操作。
提示注入的安全风险
除了 Vertex AI 共担责任中概述的安全责任之外,使用长期记忆时,还要考虑提示注入和记忆中毒的风险,这些风险可能会影响您的智能体。当记忆库中存储了虚假信息时,就会发生记忆中毒。然后,智能体可能会在未来的会话中处理此虚假或恶意信息。
为降低内存中毒的风险,您可以执行以下操作:
Model Armor:使用 Model Armor 检查发送到记忆库或来自智能体的提示。
对抗性测试:通过模拟攻击,主动测试 LLM 应用是否存在提示注入漏洞。这通常称为“红队测试”。
沙盒执行:如果智能体能够执行外部或关键系统,或者与这些系统互动,则应在具有严格访问权限控制和人工审核的沙盒环境中执行这些操作。
如需了解详情,请参阅 Google 的安全 AI 智能体方法。