摘要:用ChatGPT写方案时,你有没有遇到过这种情况?前几轮还聊得好好的,它记得你要的格式、重点,聊到第十几轮突然就“断片”了,之前说的核心需求忘得一干二净,输出的内容完全跑偏。
用ChatGPT写方案时,你有没有遇到过这种情况?前几轮还聊得好好的,它记得你要的格式、重点,聊到第十几轮突然就“断片”了,之前说的核心需求忘得一干二净,输出的内容完全跑偏。
这就是大模型的“金鱼记忆”困境,而解决它的关键,就是很少有人聊到的“上下文工程”。
今天就从几个真实案例出发,聊聊AI智能体是怎么靠四大策略摆脱这种记忆难题的。
先得说清楚,为啥大模型会记不住事儿。
之前听AI圈大佬AndrejKarpathy打了个比方,现在的大语言模型(LLM)其实像个新型操作系统,模型本身是“CPU”,负责计算和思考,而“上下文窗口”就是它的“工作内存”(RAM)。
咱们电脑的RAM存多了会卡顿、存满了会闪退,大模型的上下文窗口也一样,容量有限不说,要是信息乱糟糟的,还会出各种问题。
我之前翻DrewBreunig的分析报告,他提到过四种常见的“记忆乱套”情况。
有一种叫“上下文中毒”,就是模型把瞎编的信息(幻觉)记下来了,后面越错越离谱;还有“上下文干扰”,比如你跟它聊论文写作,又插了句周末去哪玩,它就可能把游玩建议掺进论文框架里。
说实话,这些问题不是模型笨,而是没人帮它“整理记忆”,这就是上下文工程的作用,帮AI智能体在每一步都把“该记的”精准放进内存,不该记的及时清出去。
现在行业里基本达成共识了,Cognition团队直接说“上下文工程是做AI智能体的首要工作”,Anthropic也补充说,那些要聊几百轮的智能体,没好的上下文管理根本跑不起来。
讲完了问题根源,就该说具体怎么解决了。
第一个方向是“写入”和“选择”,简单说,就是帮AI把有用的信息存好,需要时又能精准调出来。
先聊“写入”,这步就像咱们记笔记,把重要的东西先存起来,免得回头忘了。
Anthropic做过一个多智能体研究员项目,里面有个叫LeadResearcher的智能体,每次开始任务前,都会把自己的计划写进专门的内存里。
为啥这么做?因为它的上下文窗口最多装20万个Token,超过就会被截断,要是计划没存好,后面任务推进到一半就“忘了初衷”,那之前的功夫不就白费了?
这种“记笔记”的方式,有的是写成文件,有的是存在会话里的专属字段里,本质上跟咱们用记事本存待办清单没啥区别。
除了单一会话里的“笔记”,AI还需要“长期记忆”,比如你跟ChatGPT聊过几次,它能记住你讨厌冗长的回答,这就是跨会话的记忆。
本来想,这种记忆是不是随便存就行?后来发现不是。
Reflexion论文里提到,智能体得在每轮互动后“反思”,把有用的反馈记下来;GenerativeAgents项目还会定期把过往反馈整合一下,形成系统的记忆。
现在ChatGPT、Cursor这些产品都用上了这招,老实讲,我用Cursor写代码时,它能记住我习惯用的编程风格,不用每次都重新说,就是靠这种长期记忆,体验确实好了不少。
存好了信息,下一步就是“选择”,不能把所有存的东西都塞进内存,得挑有用的。
就像咱们找资料,不能把整个文件夹都打开,得翻出跟当前任务相关的文件。
比如智能体要处理代码问题,它会从之前存的“笔记”里挑出相关的指令,从长期记忆里找类似的代码案例。
但这步很容易出问题,我之前看AIEngineer世界博览会的分享,SimonWillison说他用ChatGPT时,模型居然把他的位置信息误放进了生成的图片里。
本来想,AI选记忆应该很精准,后来发现它也会“拿错东西”,就像咱们找文件时误点了无关文档,结果把不相关的内容掺进去,用户肯定会觉得“这不是我要的上下文”。
工具选择也是个难题,要是给智能体太多工具,它反而会乱。
现在常用的办法是用RAG(检索增强生成),根据任务的语义找最相关的工具。
有论文说这么做能让工具选择准确率提高不少,我觉得这就像咱们手机里装了很多APP,用搜索功能找到当下需要的那一个,比一页页翻高效多了。
代码智能体的知识选择更复杂,Windsurf的Varun说过一句话,我印象很深:“索引代码不等于上下文检索”。
意思是光把代码存起来没用,还得拆解代码结构、按语义分块,再结合搜索、知识图谱一起找,最后还要排序。
说实话,这就像咱们查学术文献,不光要找相关的,还得按重要性排顺序,不然一堆资料摆在面前,还是不知道该看哪篇。
聊完了“存”和“选”,再说说“压缩”和“隔离”,这两步是帮AI“减负”,避免内存不够用,同时防止信息互相干扰。
“压缩”就是把没用的信息删掉,只留核心。
我用过ClaudeCode写代码,有次跟它互动了快百来轮,突然它提示要“自动压缩”。
当时还担心它把关键思路删了,结果看了压缩内容才发现,它只留了核心的交互步骤,多余的闲聊全去掉了。
这就像咱们整理聊天记录,把没用的表情包和寒暄删掉,只留办事的关键信息,内存自然就省下来了。
还有一种“修剪”的方式,比压缩更直接。
比如用规则删掉较早的消息,或者用专门的模型(比如Provence)筛选无效信息。
老实讲,这两种方式各有优劣,压缩能保留更多细节,修剪更高效,具体用哪种,得看任务需求。
“隔离”则是把不同的信息分开管,避免互相干扰。
最常见的是多智能体协作,比如一个智能体负责搜索,一个负责写报告,各自有专属的内存。
Anthropic的多智能体项目证明,这样做比单个智能体效率高,就像一个团队分工做事,每个人专注自己的任务,比一个人包揽所有活更靠谱。
但问题也有,多智能体用的Token会更多,Anthropic说最多能比单智能体多15倍,而且还得协调好各个智能体的工作,不然反而会乱。
HuggingFace的deepresearcher有个很有意思的隔离方式,用“沙箱”存信息。
智能体生成的代码在沙箱里运行,大Token的结果(比如图片、音频)直接存在沙箱里,只把核心反馈传给模型。
我觉得这就像咱们用U盘存大文件,电脑内存里只留文件路径,既不占内存,又能随时调用,很聪明。
回头看这四大策略,写入、选择、压缩、隔离,其实都是在帮AI智能体“管好自己的记事本”。
说实话,现在很多人觉得AI厉害,是因为它能生成内容、处理任务,却很少注意到背后的上下文管理。
就像咱们看一个人办事靠谱,其实是他懂得怎么记笔记、整理资料,而不是他天生记性好。
未来模型的上下文窗口可能会更大,比如传言GPT-5能装百万级Token,但我觉得这些策略不仅不会过时,还得升级。
毕竟“记得多”不如“记得准、用得对”,要是内存大了就随便存、随便调,AI还是会陷入“金鱼记忆”的困境。
说到底,AI的“记忆”不是天生的,而是靠后天的“管理”。
这四大策略,就是给AI智能体配上了“高效记事本”,让它摆脱“记了又忘”的尴尬,真正成为靠谱的帮手。
来源:萌萌思密达