当前位置: 首页 > news >正文

探索智能体的记忆:类型、策略和应用

AI Agent 中的记忆:类型、策略和应用

记忆实现是使智能体能够保持上下文、从过去的交互中学习并做出明智决策的关键组成部分。与人类记忆非常相似,智能体记忆允许 AI 系统随时间存储、检索和利用信息,从而为用户创造更连贯和个性化的体验。

Agent 记忆的不同类型

AI Agent 中的记忆系统可以根据两个关键维度进行分类:时间范围(信息保留多长时间)和可访问性范围(谁可以访问信息)。

时间分类

短期记忆

短期记忆侧重于在对话或任务中维持即时上下文:

  • 对话记忆:存储对话历史,允许 Agent 引用先前的消息并保持对话的连贯性。这对于自然的交互至关重要,因为早期交流的上下文会影响后续的响应。

  • 缓冲区记忆:在定义的时间窗口内管理最近的交互,对于多轮推理任务尤其有用。当函数调用依赖于先前操作的结果,形成依赖推理步骤链时,这种类型的记忆变得至关重要。

长期记忆

长期记忆支持跨不同会话的持久性:

  • 跨会话记忆:允许 Agent 回忆先前对话中的信息,即使在会话结束后也是如此。这会随着时间的推移创造一种连续性和个性化的感觉。

  • 知识库记忆:存储事实信息、用户偏好和学习模式,无论它们最初何时记录,都可以访问。

可访问性分类

私有记忆

为单个 Agent 使用而存储的信息:

  • 仅供创建或拥有该记忆的特定 Agent 访问
  • 该 Agent 可以随时读取和修改
  • 用于维护特定于 Agent 的上下文和个人用户信息
共享记忆

可供多个 Agent 使用的信息:

  • 可供系统内已定义的 Agent 组访问
  • 任何具有适当权限的 Agent 都可以读取并可能修改
  • 对于协作式多 Agent 系统至关重要,其中信息共享可提高集体绩效

Agent 记忆的实现方法

基于变量的记忆

实现记忆的最简单方法之一是通过系统或用户定义的变量:

# 基于变量的记忆实现示例
user_preferences = {"language": "English","units": "metric","notification_frequency": "daily"
}# 访问记忆
def generate_response(query, user_id):prefs = user_preferences.get(user_id, default_preferences)# 使用偏好自定义响应return personalized_response

这种方法简单直接,但在处理复杂或非结构化信息方面能力有限。

NL2SQL 数据库记忆

自然语言到 SQL (NL2SQL) 数据库记忆允许通过自然语言进行结构化数据管理:

# NL2SQL 记忆交互示例
async def update_expense_record(user_query):# 将自然语言转换为 SQLsql_query = nl2sql_converter.convert("今天午餐新增一笔 45 美元的开销")# 执行生成的 SQLresult = await database.execute(sql_query)return result

这种方法对于需要结构化数据存储和检索的应用(例如费用跟踪器或库存管理系统)特别强大。

向量数据库记忆

向量数据库将信息存储为嵌入,从而实现语义检索:

# 向量数据库记忆实现示例
from chromadb import ChromaDBVectorMemoryasync def store_information(text_content):# 将文本转换为向量嵌入并存储await vector_memory.add(MemoryContent(content=text_content,mime_type=MemoryMimeType.TEXT,metadata={"category": "user_information", "timestamp": current_time()}))async def retrieve_relevant_info(query):# 检索语义上相似的信息results = await vector_memory.query(query, k=3)return results

向量数据库擅长基于语义相似性而非精确匹配来检索信息,使其成为知识检索系统的理想选择。

记忆查询和更新工作流程

用户 Agent 短期记忆 长期记忆 初始查询 存储查询 查询相关上下文 返回个性化信息 以上下文感知的答案响应 后续问题 查询最近的对话 返回对话历史 用新学到的信息更新 以连贯的后续响应 用户 Agent 短期记忆 长期记忆

此工作流程演示了短期和长期记忆系统如何在整个对话过程中协同工作以维护上下文和个性化。

记忆更新策略

通过函数调用进行启发式更新

Agent 可以通过由上下文需求触发的特定函数调用来更新记忆:

  1. NL2SQL 数据库更新:Agent 识别何时应存储信息并生成适当的 SQL 命令。
  2. 向量数据库更新:当 Agent 确定新信息可能与未来检索相关时,会将其嵌入并存储。

这种方法允许动态的、上下文感知的记忆管理。

通过函数逻辑强制更新

某些记忆更新通过编程逻辑自动发生:

  1. 变量更新:系统变量根据直接用户输入或推断的偏好进行更新。
  2. 会话状态管理:关键信息在对话流程的特定点被强制存储。

这确保了无论 Agent 的决策如何,基本信息始终被捕获。

记忆查询策略

启发式查询

与更新类似,查询可以由 Agent 决策触发:

  1. 上下文检索:Agent 确定何时额外的上下文可以改善其响应。
  2. 知识增强:当面临复杂问题时,Agent 可能会查询其记忆以获取相关事实。
强制查询

某些记忆检索是程序化强制执行的:

  1. 用户识别:存储用户身份的变量在每个会话开始时自动检索。
  2. 偏好应用:在生成个性化内容之前强制查询用户偏好。

研究案例分析

Coze

Coze 支持短期和长期记忆实现:

  • 短期记忆:在会话中维护对话上下文
  • 长期记忆:跨会话记录用户配置文件信息和关键记忆点
  • 手动编辑:允许开发人员在调试模式下手动编辑记忆

Coze 的记忆方法在情感陪伴场景中尤其出色,其中个性化交互至关重要。

OpenAI

OpenAI 在 ChatGPT 中实现了跨对话的长期记忆:

  • 用户可以明确指示系统记住特定信息
  • 可以使用诸如“你记得关于我的什么?”之类的短语查询记忆
  • 用户通过删除特定记忆或完全禁用该功能的选项来保持控制

此实现平衡了实用性与用户隐私和控制。

AutoGen

微软的 AutoGen 框架提供全面的记忆支持:

  • 内置支持:多种记忆类型,包括基于列表和基于向量的实现
  • 集成:与向量数据库和外部记忆系统配合使用
  • 自定义:开发人员可以通过覆盖 addqueryupdate_context 等方法来扩展记忆协议

AutoGen 的记忆系统因其灵活性和可扩展性而特别引人注目。

LangChain 和 LlamaIndex

这两个框架都提供专门的记忆实现:

  • LangChain:专注于对话和实体记忆,对基于对话的应用有强大的支持
  • LlamaIndex:强调可组合和向量记忆,在数据检索场景中具有特殊优势

多智能体系统的记忆设计

在为多智能体设计记忆系统时,有以下几点考虑:

用于多 Agent 协作的共享记忆

对于多 Agent 系统,共享记忆变得至关重要:

  • 信息共享:诸如文件路径之类的简单信息可以使用以对话为维度的变量进行存储
  • 冲突解决:实施处理来自不同 Agent 的冲突记忆更新的策略

缓冲区记忆压缩

对于多轮任务,记忆压缩变得重要:

  • 摘要:将先前的对话轮次压缩成摘要
  • 任务初始化:开始新任务时,总结先前任务的结果
  • 上下文窗口管理:确保最相关的信息适合模型上下文窗口

长期记忆注意事项

实施长期记忆的决定取决于实际需求:

  • 用户个性化:对于需要个性化体验的应用是必要的
  • 知识积累:对于通过持续使用而改进的系统很有价值

相关文章:

  • MySQL优化-MySQL常用查询命令
  • MATLAB三维可视化技术解析
  • 引用的使用
  • 什么是跨域,如何解决跨域问题
  • 脑图谱:脑机接口的必由之路——技术突破与产业转化的系统性思考
  • CI/CD与DevOps流程流程简述(给小白运维提供思路)
  • element-plus中,vue3项目,el-input密码框禁止浏览器自动弹出浏览器历史密码提示框
  • 关于Stream
  • 使用ffmpeg截取MP3等音频片段
  • ubuntu 挂载硬盘
  • Notion Windows桌面端快捷键详解
  • Solana批量转账教程:提高代币持有地址和生态用户空投代币
  • 高防ip是怎么做到分布式防御的
  • Decode rpc invocation failed: null -> DecodeableRpcInvocation
  • 计算机网络中相比于RIP,路由器动态路由协议OSPF有什么优势?
  • 多线程的出现解决了什么问题?深入解析多线程的核心价值
  • Loly: 1靶场渗透
  • C++ 备忘录模式详解
  • 【AWS+Wordpress-准备阶段】AWS注册+创建EC2实例
  • 基于nnom的多选择器
  • 告别户口本!今天起婚姻登记实现全国通办
  • 2025年上海市模范集体、劳动模范和先进工作者名单揭晓
  • 中方是否认同俄方关于新纳粹主义观点?外交部:联大曾多次通过相关决议
  • 两部上戏学生作品亮相俄罗斯“国际大学生戏剧节”
  • 41年轮回,从洛杉矶奔向洛杉矶,李宁故地重游再出发
  • 以色列计划“占领加沙”,特朗普下周中东行结束之际将是“机会窗口”