Agentic Memory:解析AI智能体的多种记忆类型


Agentic Memory:解析AI智能体的多种记忆类型

点击“蓝字” 关注我们

Agentic Memory:解析AI智能体的多种记忆类型

当谷歌首次宣布Gemini Pro拥有100万token的上下文窗口时,许多人宣称这是检索增强生成(RAG)技术的终结。有人形象地比喻:“这就像说因为现在内存(RAM)足够大,所以我们不再需要硬盘了。” 对此观点,笔者深表赞同。大型语言模型(LLMs)本质上是无状态的,即便具备超大上下文窗口,若智能体需要在多次交互、任务执行和不同环境中维持并检索知识,仍离不开记忆系统。这正是“智能体记忆”(Agentic Memory)概念的核心价值所在。

智能体记忆大致可分为两大类别:长期记忆与短期记忆。每类记忆又包含若干细分类型,它们共同构成了AI智能体的“认知体系”,使其能够像人类一样积累经验、运用知识、执行任务。

Agentic Memory:解析AI智能体的多种记忆类型

长期记忆:智能体的“知识库”与“履历表”

长期记忆是智能体储存持久信息的核心,它确保智能体能够从过去的经历中学习、沉淀知识,并在未来的交互中灵活调用。长期记忆主要包括情景记忆、语义记忆和程序记忆三种类型。

情景记忆:智能体的“个人日记”

情景记忆可类比为智能体的“个人日记”或“日程表”,它记录了智能体在特定情境中的事件、交互过程以及自身行为。这种记忆不仅包含事件本身,还涵盖了丰富的上下文细节,使其能够清晰还原“发生了什么、为何发生、涉及谁、何时发生以及使用了哪些资源”。

以一个代码辅助智能体的交互记录为例:

“2025年7月10日星期四上午10:30(印度标准时间),在‘my-web-app’Git仓库的‘feature/user-auth’分支中,开发者‘爱丽丝’遇到了来自app/database.py文件的错误回溯,具体为‘OperationalError: 无法连接到服务器’。当前激活的Python环境为venv,requirements.txt文件显示已安装psycopg2。智能体建议检查config.py中的数据库凭证并验证PostgreSQL服务器状态。爱丽丝随后提供了config.py文件的片段,显示端口号配置错误。智能体成功识别出差异,并建议将端口从5433改为5432。爱丽丝确认此操作解决了问题。”


在这个案例中,“特定情境”包含以下关键要素:

  • 时间与日期:2025年7月10日星期四上午10:30(印度标准时间),这对构建事件的时间线和判断相关性至关重要。
  • 项目背景:“my-web-app”Git仓库,明确了当前处理的项目。
  • 版本控制状态:“feature/user-auth”分支,指示了具体的开发线路。
  • 用户/开发者:“爱丽丝”,有助于智能体为同一用户定制未来的交互方式。
  • 问题领域:数据库连接错误(OperationalError),对问题类型进行了分类。
  • 具体文件/位置:app/database.py和config.py,精准定位了问题出现及解决的位置。
  • 环境细节:Python虚拟环境(venv)、requirements.txt中包含psycopg2,提供了关键的技术配置信息。
  • 智能体的行动/建议:检查凭证、验证服务器状态、提议修改端口,记录了智能体自身的贡献。
  • 用户的行动/输入:提供错误回溯、展示config.py片段,记录了用户的交互内容。
  • 结果:通过将端口从5433改为5432解决了问题,包含了具体的解决方案细节。

这种详细且富含上下文的记录,使智能体不仅能回忆起发生的事情,还能理解事件的起因、涉及的对象、发生的时间以及使用的资源。

情景记忆的重要性不言而喻:它使智能体能够从过去的错误中学习、参考之前的对话,并构建一致的角色形象或维持长期任务流程。例如,若爱丽丝再次在“my-web-app”项目中遇到数据库连接问题,智能体可通过情景记忆快速定位历史记录,避免重复排查已知问题,直接从端口配置、服务器状态等关键节点入手,提升问题解决效率。

在存储方式上,情景记忆通常保存在向量数据库(如Qdrant、Pinecone、Weaviate等)中,这便于查找与当前情况在语义上相似的过往交互(即语义检索)。此外,它也可以作为结构化日志、对话或事件存储在通用的关系型数据库(RDBMS)或非关系型数据库(NoSQL)中。向量数据库的优势在于能够通过语义相似度匹配,快速从海量历史记录中提取相关信息,而结构化数据库则更适合按时间、用户、项目等维度进行精确查询。


语义记忆:智能体的“知识储备”

对于人类而言,语义记忆就像我们在学校学到的知识以及在工作中积累的专业技能。对智能体来说,语义记忆是从多种来源获取的知识,主要包括:

  • 经过微调的大型语言模型(内置知识)
  • 基于RAG的上下文(如公司手册、常见问题解答、文档等)
  • 私人文档索引

例如,一个法律智能体掌握的当地税法知识,或一个客服智能体从公司知识库文章中检索到的问题答案,都属于语义记忆的范畴。

语义记忆的重要性体现在:它使智能体能够提供准确、最新且全面的答案,不受大型语言模型训练数据截止日期的限制。同时,它通过将回应建立在可验证的事实基础上,有效防止了“幻觉”(即生成错误信息)。例如,若客服智能体的语义记忆中包含公司最新的产品保修政策,当用户询问相关问题时,它能直接引用政策内容给出准确答复,而不是依赖可能过时的训练数据进行推测。

语义记忆的存储方式多样:

  • 向量数据库:同样,向量数据库是对大型文本语料库进行语义搜索的关键。通过将知识片段转化为向量,智能体可快速找到与当前问题相关的知识内容。
  • 传统数据库:对于结构化数据(如产品目录、客户数据库),通常使用关系型或非关系型数据库。例如,电商智能体的产品价格、库存等信息,适合存储在关系型数据库中,便于进行精确的查询和更新。
  • 应用程序接口(APIs):通过API访问外部服务或实时数据流。例如,天气智能体需要通过气象API获取实时天气数据,这些数据作为语义记忆的动态补充,确保提供的信息时效性。

程序记忆:智能体的“行为准则”

程序记忆决定了智能体的运作方式、固有能力和边界。它确保智能体的行为一致、安全,并在预定范围内运行,为智能体的决策和行动执行提供框架。

程序记忆包含的内容十分关键:

  • 系统提示:定义智能体的角色、规则和身份。例如,一个医疗咨询智能体的系统提示可能包含“仅提供一般性健康建议,不替代专业医疗诊断”等内容。
  • 可用工具或API:智能体可以调用的函数或应用程序接口。例如,数据分析智能体可能有权限调用Excel的数据分析API或Python的Pandas库。
  • 防护措施和访问控制:防止不良行为的规则和约束(如不回答有关非法活动的问题、遵守隐私政策)。例如,金融智能体必须遵守数据隐私法规,不得泄露用户的银行账户信息。

程序记忆的存储方式主要有:

  • 代码仓库(Git):系统提示、工具定义和防护逻辑通常作为代码或配置文件存储在版本控制系统中,便于追踪修改和回溯历史版本。
  • 提示词注册表:专门用于管理和版本控制提示词的系统,确保不同版本的智能体使用的提示词一致且可追溯。
  • 工具注册表:集中管理可用工具及其规格的仓库,智能体可通过查询注册表获取最新的工具信息。

程序记忆是智能体正常运作的基础,它就像智能体的“操作手册”,确保其在各种情况下都能遵循既定规则行事。例如,当用户向医疗咨询智能体询问具体疾病的治疗方案时,程序记忆中的规则会引导智能体拒绝提供具体处方,转而建议用户咨询专业医生,避免超出自身能力范围导致不良后果。

短期记忆:智能体的“工作内存”

短期记忆(也称为工作记忆)是智能体的“随机存取存储器(RAM)”,是即时、活跃的记忆空间,智能体在此处理当前任务的信息(通过将信息发送给大型语言模型进行推理)。它具有暂时性和动态性,不断更新以包含与下一个行动最相关的信息。

短期记忆包含的内容丰富且多样:

  • 检索到的情景记忆片段
  • 相关的语义知识块
  • 系统提示和程序上下文
  • 近期的交互或用户查询

所有这些提取的信息(也称为“工作缓存”)被整合到一个连贯的提示词中(旨在为大型语言模型提供必要的上下文),然后发送给大型语言模型。然而,这一过程受到模型上下文窗口的限制(如8K、32K、128K token等)。

短期记忆的重要性在于:它决定了智能体当前“思考的内容”,并使智能体能够根据即时情况动态调整其“思维过程”。例如,当用户向代码辅助智能体提出一个新的问题时,智能体首先会将用户的查询、当前项目的分支信息等放入短期记忆,然后从长期记忆中检索相关的情景记忆(如该用户之前遇到的类似问题)和语义记忆(如相关的编程知识),将这些信息整合后发送给大型语言模型进行推理,从而生成针对性的解决方案。

短期记忆的动态性使其能够适应不断变化的任务需求。例如,在一个多步骤的软件开发任务中,智能体在编写代码阶段的短期记忆可能包含代码语法、项目架构等信息;而在测试阶段,短期记忆则会更新为测试用例、错误排查方法等内容,确保每个阶段的思考都围绕当前任务重点展开。

智能体记忆的协同运作

智能体的各类记忆并非孤立存在,它们通过协同工作,共同支撑智能体的认知和行为。以下是智能体记忆的运作流程:

首先,当智能体接收到用户的查询或任务指令时,短期记忆(工作记忆)会立即激活,接收并暂存当前的交互信息,如用户身份、问题描述、任务目标等。

接着,智能体根据短期记忆中的信息,决定是否需要从长期记忆中检索相关内容。例如,若用户是首次交互且问题属于常见知识范畴,智能体会优先从语义记忆中查找答案;若用户是回头客且问题与之前的交互相关,则会同时检索情景记忆和语义记忆。

在检索过程中,向量数据库发挥重要作用,通过语义相似度匹配,快速从海量的长期记忆中提取相关的情景片段和知识块。这些提取的信息被送入短期记忆,与当前的交互信息整合,形成一个完整的上下文。

随后,整合后的上下文被构建成提示词,发送给大型语言模型进行推理。大型语言模型基于这些信息生成响应或决策,指导智能体采取行动(如回答用户问题、调用工具执行任务等)。

在行动执行过程中,智能体会将新的交互细节、任务进展和结果记录到情景记忆中,同时,若有新的知识产生(如用户提供的新信息),会更新到语义记忆中。程序记忆则在整个过程中发挥监督作用,确保智能体的行动符合既定规则。

这一流程类似于人类的记忆运作模式:当我们遇到问题时,首先会调动短期记忆处理当前信息,然后从长期记忆中回忆相关的经历和知识,经过思考后做出回应,同时将新的经历存储到长期记忆中。

智能体记忆是AI智能体实现智能化、个性化和持续进化的核心支撑。情景记忆让智能体“记得过去”,能够从历史交互中学习;语义记忆让智能体“懂得知识”,能够提供准确全面的答案;程序记忆让智能体“知道规矩”,能够安全合规地运作;短期记忆让智能体“专注当下”,能够动态处理即时任务。

随着AI技术的不断发展,智能体记忆的容量、检索效率和协同能力将不断提升。未来,我们或许会看到更接近人类记忆模式的智能体,它们能够更高效地整合各类记忆,实现更自然、更智能的交互。对于开发者而言,优化智能体的记忆系统,合理设计各类记忆的存储和检索机制,将是提升智能体性能的关键。

版权声明:charles 发表于 2025年7月16日 pm3:12。
转载请注明:Agentic Memory:解析AI智能体的多种记忆类型 | AI工具大全&导航

相关文章