Agent记忆架构深度评测:无状态模型与持久化记忆对比
大语言模型本质上没有记忆。每次新对话就像首次见面——模型不会保留之前交互的任何痕迹。
核心原因在于:模型本身是一个大型数学函数。输入文本,输出Token。权重中不存在持久化存储来跨会话保存上下文。普通聊天机器人不需要记忆——写一封求职信后任务结束,无需连续性。
但Agent完全不同。它们需要执行长期任务,随时间学习用户偏好,跨会话与其他Agent协作。无状态性成为根本障碍——没人会容忍一个每周一都要重新介绍自己的个人助理。
常见误解
很多人第一次思考Agent记忆时,直觉反应是:往上下文窗口塞更多内容。上下文窗口是模型当前能“看到”的全部信息,让Agent记住什么就粘贴什么,似乎问题就解决了。
但上下文窗口有上限,目前最长约100万到200万Token。听起来很大,可一个长期运行的自主Agent积累的状态量,完全可能超过这个极限。更严重的问题是:模型处理深埋在长上下文中的信息时,注意力分布不均,表现明显下降。而且上下文是临时的,会话结束就消失。要保持连续性,每个新会话都得重新注入完整历史——成本高,易出错。
不妨看看计算机的存储体系——更贴切的类比。计算机不会把所有数据放在RAM里,而是采用分层结构:快速小容量的内存处理当前工作,较慢大容量的持久化存储放其余数据,由系统决定加载、保留、释放什么。
Agent记忆遵循相同逻辑。
Agent记忆的四种类型
Agent记忆不是单一概念——它是四层体系,各层服务于不同目的。
第一层是工作记忆,对应Agent当前处理的内容,也就是上下文窗口:用户消息、对话历史、注入的文档或工具调用结果。访问速度快,但临时性,会话结束即消失。
第二层是情景记忆,记录发生过的事:过去的对话、已完成的任务、做出的决定及其原因。存储在外部,按需检索。可以理解为Agent的日记,赋予它个人历史感——“两周前讨论过这个主题”。
第三层是语义记忆。用户名字、偏好、角色、公司技术栈——这类事实性知识不绑定于特定对话,是Agent学到并持久存储的独立事实,最接近用户画像或知识库的概念。
第四层是程序记忆,关乎“怎么做”:可用工具、工作流、系统提示词。模型权重本身也可视为程序记忆——数万亿参数编码了推理、写作和响应方式。这层变化最少,但最基础。
四种记忆类型映射到技术栈的不同组件:工作记忆对应上下文窗口;情景记忆和语义记忆对应外部数据库(向量存储、关系型数据库、键值存储);程序记忆对应模型权重和系统提示词。
实际运作机制
有了四种类型划分,接下来看Agent使用记忆时在机制层面的具体操作。
写入
会话结束时,或进行中关键节点,Agent(或独立记忆管理进程)判断哪些信息值得保留。判断不简单——不能全存,否则检索会变慢且杂乱。需要保留的是后续可能有用的内容:做出的决定、表达的偏好、不容易重新推导的上下文。
通常需要一次额外LLM调用做摘要和提取:原始对话输入,结构化记忆条目输出——事实、观察、事件——随后写入向量数据库或键值存储,打上时间戳和主题等元数据标签。
检索
新会话开始或Agent接到新任务时,它会向记忆存储发起查询,获取相关上下文。向量搜索是常见做法:将当前查询编码为embedding,检索语义相似度最高的已存储记忆。
检索到的内容与新对话一起注入上下文窗口,Agent由此获得对过去经历的访问能力,无需逐一重读每个历史会话。类比来说,就像开会前翻一遍笔记,而不是凭空回忆所有细节。
遗忘
遗忘环节关注最少,但重要性不低。记忆系统需要衰减机制:旧的、低相关性的记忆应逐渐淡出;矛盾的记忆(先说偏好Python,后来又切换到Go)需要清理——否则知识库会随时间变得陈旧且自相矛盾。
部分系统采用基于时间的显式过期策略,另一些用近期性和访问频率作为信号。少数更精细的方案借鉴间隔重复原理:持续被检索的记忆保持活跃,长期未被调用的逐渐消退。
当前进展
AI Agent记忆是一个快速发展的领域,有几个名字值得注意。
Mem0 是目前应用最广的记忆层方案。它介于Agent和数据库之间,自动处理写入、检索、遗忘逻辑——接入技术栈后即可管理情景记忆和语义记忆。API设计简洁:保存记忆、搜索记忆,剩下的交给它。
Letta(前身MemGPT)走了一条更有主见的路线,通过工具调用把记忆控制权显式交给Agent自身——由Agent决定何时写入、写入什么、删除什么。复杂度更高,透明度也更高:Agent是自己记忆管理的主动参与者,不是被动接收方。
LangChain 和 LlamaIndex 这些主流框架同样提供了记忆模块。越来越多的前沿模型提供商开始将持久化能力直接内置于API中,让对话历史在会话间原生延续。
方向清晰:记忆正在从各团队各自解决的定制工程问题,演变为Agent技术栈中拥有标准接口和专用基础设施的一等公民。
与MCP和A2A的关联
MCP(Model Context Protocol)解决Agent与工具和数据源之间的通信问题;A2A(Agent to Agent)解决Agent之间的相互通信问题。记忆是第三块:Agent如何在时间维度上维持自身的连续性。
换个角度理解:MCP处理当下——此刻能访问什么;A2A处理协作——多个Agent如何协调;记忆处理过去——从前次交互中留下了什么。
三者合在一起构成一个能行动、能协作、能在时间跨度上维持记忆的系统——远不止对提示词做出响应那么简单。
结论
模型本身每几个月都在进步,上下文窗口也在持续增大。但记忆作为一个完整系统——包含写入、检索和衰减逻辑——不会随着模型规模的增长自动获得。它是一个需要刻意设计和搭建的工程层,这正是当下值得关注它的原因。



