理解 Agent 记忆:从无状态模型到持久化记忆架构

简介: 大语言模型本质无状态,对话历史无法自动留存。Agent需长期记忆支撑连续性任务,但简单堆砌上下文不可行。本文系统阐释Agent记忆的四层架构(工作/情景/语义/程序记忆),及其写入、检索与遗忘机制,并对比Mem0、Letta等主流方案,揭示记忆正成为AI Agent技术栈中独立、标准的关键基础设施。

大语言模型从根本上是无状态的。发送一条消息产生一个回复,每次新对话都是一块白板。

这事因为模型本身就是一个巨型函数:输入进去,token 出来,模型权重中没有任何持久化存储能在会话之间保留对话历史。

简单聊天机器人不在乎这一点。让它写一封求职信,写完就结束不需要连续性。

Agent 面对的情况截然不同。它们需要处理长期运行的任务,在时间推移中学习用户偏好,跨多个会话与其他 agent 协作。无状态性构成了根本性障碍,没有人能接受一个每周一早上都要重新自我介绍的个人助理。

错误的心智模型

多数人第一次思考 agent 记忆时,会本能地给出最简答案:往上下文窗口里塞更多东西。上下文窗口就是模型当前能"看到"的全部信息,想让 agent 记住什么就粘贴进去,看起来问题就解决了。

但是上下文窗口是有限的,目前最长的大约在 100 万到 200 万 token 之间。听起来很大,但一个长期运行的自主 agent 积累的状态量可以远远超过这个上限。在触及上限之前还有一个更深层的问题:模型在处理深埋于长上下文中的信息时,表现会明显下降,注意力分布并不均匀。而且上下文是临时性的,会话一结束就消失了。要保持连续性就得在每个新会话开始时重新注入完整历史,代价高且容易出错。

计算机的存储体系是一个更贴切的类比。计算机不会把所有数据都放在 RAM 里,它采用层次结构:快速、小容量的即时内存处理当前工作,较慢、大容量的持久化存储放置其余数据,由系统决定加载什么、保留什么、释放什么。

Agent 记忆遵循相同的逻辑。

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 如何协调;记忆处理过去,从前次交互中留下了什么。

三者合在一起就组成了一个能行动、能协作、能在时间跨度上维持记忆的系统,所以远不止对提示词做出响应那么简单。

总结

模型本身每几个月都在进步,上下文窗口也在持续增大。但记忆作为一个完整系统——包含写入、检索和衰减逻辑——不会随着模型规模的增长自动获得。它是一个需要刻意设计和搭建的工程层,这正是当下值得关注它的原因。

https://avoid.overfit.cn/post/88add337b3214e46a3037a6a446b436a

by Nisarg Bhatt

目录
相关文章
|
10天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
5487 13
|
18天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
21817 117
|
14天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
8302 8

热门文章

最新文章