Agent的“记忆”到底怎么来?
目前AI模型的智能发展到现在,Agent已成为最热门的产品形态。在Agent类产品的实现过程中,有两个关键要素:一是允许模型调用各类工具,二是赋予模型"记忆"能力以支持复杂任务的规划和长期操作。那么,Agent的记忆到底是什么?很多人说自己"训练"了一个Agent,实际上发生了什么?本文尝试解读Agent实现中主要的记忆来源和处理方式。

一、到底什么算是记忆?
在使用 Openclaw 等AI助手时,我们会感觉到它”记住”了自己的一些习惯、身份和常用指令,可以像一位熟悉我们的同事那样协作;但有时候,聊着聊着它似乎又突然忘记了某些内容,让人摸不着头脑。
那它到底记没记住呢?要回答这个问题,我们需要回归到AI神经网络对人脑的模拟机制中寻找答案。
参考人脑的研究,一种主流观点认为:长期记忆的形成依赖于神经元之间连接改变所产生的”印记”。特定的神经元连接模式及信号传递方式浓缩了所谓的”记忆”。当你再次回忆这些内容时,特定的神经元以特定模式被激活,产生的化学和电信号让你重现特定的记忆内容。
在Agent的产品结构中,实际上只有模型本身具备这种记忆能力。模型的人工神经网络记录了海量的”参数”,这些参数相互交织,构建了从输入到输出的复杂映射关系。就像人脑回忆某段记忆一样,每次输入都会经过神经元层层的传递计算,选择性激活,最终输出特定结果。
因此,如果参照人脑的记忆机制,模型在与单个用户的对话过程中,严格来说并没有能力“记住”任何新东西——模型本身的参数在使用过程中不会产生任何变化。它的”记忆”永远只包含训练数据所带来的知识。但为什么实际使用时,它确实表现得像是记住了某些信息?这些信息从何而来?
二、工作记忆与长期记忆
在人类认知活动中,首先形成的是短期工作记忆,比如刚读过的书页中的人名、上一行的计算结果等。这些短期记忆帮助我们持续完成任务,但会迅速遗忘;而另一部分记忆会经过”转存”机制进入长期记忆——这种记忆内容相对抽象模糊,却能持续很长时间,帮助我们形成稳定的自我认知、掌握必要技能、坚持长期目标等。
尽管使用Agent时我们并未改变模型本身,但为了帮助Agent像人一样工作,工程师们实际上为其设计了类似工作记忆和长期记忆的机制。
工作记忆(上下文窗口)
在与Agent的对话中,虽然表面上是”你一句我一句”的交互,但实际上,每次你发送消息时,系统都会将整个历史对话一并发送给模型。因此,模型每次回复都可以参考之前的全部对话内容。只要对话未被清空且未超出模型的最大上下文限制,它就能”记得”对话中的每一个细节。
然而,每个模型都有最大上下文长度限制。一旦超出这个限制,我们就不得不丢弃部分历史记录、开启新对话,或对聊天记录进行压缩处理。
因此,上下文中的内容就像工作记忆——它记住了当前对话的详细信息,但一旦超出容量,这些信息就会被”遗忘”。
在复杂任务(如编程)中,如果仅依赖这种机制显然是不够的(甚至可能无法完整阅读一个代码库)。因此,我们需要将上下文中的工作记忆”转存”为长期记忆。
长期记忆(外部知识库)
前文已提到,模型不经过训练不可能新增记忆,那么长期记忆如何构建?目前的主流方案是提供一个外挂知识库。
这就像记性不好的人把知识记在笔记本上——我们为Agent提供一个可读写的知识库。当上下文即将超限,或特定提示词触发时,Agent会将上下文中的关键内容写入知识库;当对话中需要特定知识时,通过检索机制从知识库中召回相关内容,加载到上下文中供本轮使用。
这样,一些需要永久保留的信息——如对话风格、用户身份、关键知识概念等——就能被Agent”长期记住”了。
但需要注意的是,记录知识时模型不可能将上下文一字不差地保存(这种机械记录也没有意义)。因此,长期记忆是对工作记忆的提取与压缩,类似于人类的长期记忆——它会变成相对抽象的形式,只保留关键信息。
至此,我们可以勾勒出Agent记忆机制的完整图景:
- 模型参数:内化的”真正”记忆(静态知识)
- 知识库:持久但抽象的长期记忆
- 上下文:短暂但具体的工作记忆

三、记忆紊乱:AI也会”阿尔茨海默”?
基于上述理解,Agent似乎已经具备完善的记忆机制,但在日常使用中,我们常发现它的记忆会出现紊乱:突然忘记某些内容,甚至记错信息。这些问题是如何产生的?从上述记忆结构中,我们可以找到线索。
问题的根源实际上来自两个方面:模型内化记忆无法实时更新 + 上下文长度限制。
外挂知识库是我们为解决这两个问题而设计的长期记忆工具。但何时存入、存入什么、何时取出、取出什么——这些关键环节仍依赖模型的”决策”。
存入环节:目前的工具通常在上下文接近限制时触发压缩存储,但用户往往不知道上下文何时到达阈值。触发压缩本身就会导致上下文丢弃部分细节,这正是用户感觉Agent”突然忘记”某些内容的主要原因。
取出环节存在两个问题:
- 触发时机:由于知识库内容往往远超上下文限制,我们只能将知识库结构(或索引)提供给模型,由其判断是否需要获取信息。但模型可能更”信赖”自己的内部记忆而非外部信息,这时就会出现:即使知识库中已确认存储了某条信息,Agent仍会给出截然不同的回答。
- 召回精度:一旦决定取出,模型如何找到真正对应的知识?这通常依赖搜索算法或相关性算法(如Embedding向量检索)。召回算法可能成为瓶颈——如果召回精准度不足,Agent可能产生答非所问的情况。
优化方向
针对这些问题,工程实践中已有诸多优化方案:
- 知识库分层:将核心关键知识始终加载在上下文,解决”何时获取”的问题
- 完整日志存储:将完整聊天记录同步存入知识库,作为可检索的历史,缓解压缩时机带来的信息丢失
但这些工程手段无法解决根本问题——Agent只是”表现得越来越像能记住信息”。或许,只有当某种新机制能够让模型在对话中直接进行训练或微调,将记忆真正内化到模型参数中时,我们才能见到真正可以”记住”你的Agent。
本文由 @范佳玉 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
- 目前还没评论,等你发挥!

起点课堂会员权益




