你有没有这样的经历:跟AI聊了十分钟,对方已经忘了你五分钟前说过的话。你提到自己的名字、职业、刚才讨论的方案——它一脸茫然,好像第一次见你。
你不是一个人。这不是AI"笨",这是它的底层设计决定的。
今天就把这件事彻底讲明白:AI到底有没有记忆?它的"记性"是怎么回事?我们怎么让它记住该记住的东西?
AI的记忆,不是你想的那种记忆
先说结论:大语言模型本身没有任何长期记忆能力。
你不是记性不好,你是根本不存在"记忆"这个模块。
每个模型,不管是GPT-4o还是Claude还是DeepSeek,它们的工作方式都是这样的:你发一段话(Prompt),它根据这段话预测最合理的回复。回复完,任务结束。你下一条消息进来——它又会把你之前说过的所有内容(加上新的消息)重新塞进去,重新"算"一遍。
你以为是它在"记住"之前说过的话,其实是你自己在帮它记。
每次对话,你在聊天框里看到的全部内容——你第一条消息、它第一次回复、你的追问、它第二次回复——全都被原封不动地再次发给模型。模型读一遍,然后续写。
所以你每次问"还记得我刚才说的吗?",它说"记得"——那不是它在翻阅记忆,是它刚刚读了你提供的聊天记录。
这个"能放多少历史对话"的上限,就叫上下文窗口。
上下文窗口:你的"便签纸"有多大
上下文窗口是有大小限制的。就像你只能在桌面上放一张便签纸,桌子有多大,你就能写多少内容。
- GPT-4o的上下文窗口是128K Token——大约相当于9-10万字的英文内容,或者更少的中文内容。
- Claude 3.5 Sonnet是200K Token。
- DeepSeek-V3是128K Token。
- Gemini 1.5 Pro达到了2M Token——目前业内最大。
128K听起来挺多?换算成汉字,大约是6-8万字。看起来够聊很久了吧?
但现实是,你很难真正用完这128K。
为什么长对话AI还是会"失忆"?
有三个坑:
第一,Token不是按字数平均消耗的。
你说"今天天气不错",消耗5个Token。但AI返回的一篇长文章,可能就消耗了2000个Token。十轮问答下来,你的上下文可能已经被AI自己的输出塞满了。你聊天时每说一个字,AI回复的每一个字——全都在消耗你的上下文窗口。
第二,模型在中间会"迷糊"。
数学上有个现象叫"注意力衰减":当上下文序列变得非常长时,模型的注意力(Attention)机制会越来越难将早期内容和当前内容关联起来。不是你忘了,是你翻到第100页之后,不记得第3页写了什么。
有研究显示,即使上下文窗口是128K,模型在长度超过30K-40K之后,对早期信息的召回准确率就已经明显下降了。你的128K窗口,实际有效部分可能只有一半。
第三,不同位置的记忆强度不同。
模型对开头和结尾的内容"印象最深",对中间的内容最容易遗忘。这叫"U型效应"(也叫序列位置效应)。你刚开始对话时说的"我叫张三,是一名程序员"——很快就会淹没在中间的闲聊里。
三个技巧,让AI"长记性"
你知道了AI的记忆机制,就能用技巧对付它。
技巧一:关键信息放开头和结尾
既然中间的内容最容易被遗忘,那就把关键信息放在开头重申一次,结尾再强调一次。
比如你要AI帮你写一篇产品分析报告,开头先写清楚核心要求:
“你是一名资深产品分析师。以下是我要分析的产品的核心背景:产品X是一个面向中小企业的SaaS工具,成立于2020年……”
在最后一条消息,再补一句:
“请重点围绕上面提到的几点展开分析……”
这样等于在模型最容易"记得"的两个位置各放了一份关键信息。
技巧二:使用System Prompt(系统提示词)
这是被最多人忽略的高级技巧。
很多大模型的API(包括ChatGPT的自定义指令、Claude的Project Knowledge、DeepSeek的System Prompt)都支持设置一个系统提示词。这个提示词不管你后面的对话怎么进行,始终保持在对话的最开头——也就是模型"最关注"的位置。
你可以把用户的基本信息、核心需求、始终不变的约束条件放在System Prompt里。
举个例子,如果你是一个每天用AI辅助工作的产品经理,可以这样设System Prompt:
“我叫李明,是一个跨境电商产品经理,负责B端供应链系统。我习惯用中文沟通,喜欢结构化的回答。请始终基于我的行业背景给出具体建议,不要泛泛而谈。”
这就像在AI的记事本第一页贴了一张永不翻页的便利贴。它每次"读"对话,首先看到的就是这一页。
技巧三:主动"刷新"上下文
如果你的对话比较长,可以主动帮AI"翻篇"。不是在同一个上下文里无限延续,而是开始一个新的对话,但把之前的摘要带过去。
比如你和AI讨论了三个小时的代码设计,准备进入编码阶段,你可以说:
“以下是我们刚才讨论的核心结论:我们决定使用Python FastAPI框架,数据库用PostgreSQL,采用了三层架构设计。现在请你基于这个结论,帮我生成项目入口文件。”
你相当于帮AI做了一次上下文压缩——把3个小时的闲聊压缩成两句核心结论。
为什么有些服务"似乎"能记住你?
你可能会问:那ChatGPT的"Custom Instructions"、Claude的"Project"、Mem.ai这类工具是干嘛的?它们不是AI记忆吗?
这些本质上都不是AI自身的记忆能力,而是外部缓存系统。
ChatGPT把你的Custom Instructions放在System Prompt里。Claude的Project知识库是把上传的文档切碎了拼到每次对话的上下文里。Mem.ai则是把一个单独的数据库挂在了AI外面,需要的时候去查。
这些实现方式都绕不开一个核心约束:上下文窗口的大小。你放再多的外部信息,最后能"喂"给模型的,始终只有那个窗口大小的内容。
所以,现在市面上有一个比较新的研究方向——Infinite Context(无限上下文)。它的思路是:舍弃把所有历史对话塞回去的做法,改用类似人类大脑的"摘要+索引"机制。AI只保留关键信息摘要,需要细节时再去"查档"。Gemini 2M Token的上下文窗口就是朝着这个方向迈出的一步。
但目前,还处于实用化的早期阶段。
小结:给AI装一个"便签系统"
说到底,让AI"记住"内容,靠的不是AI本身的记忆能力——而是你作为使用者的上下文管理能力。
把AI想象成一个超级聪明但健忘的助理。它每次见到你,都是"初次见面"。你需要做的,就是:
- 把最重要的话写在最前面——System Prompt就是你的标签纸
- 长对话中定期"做摘要"——重新喂给AI
- 关键信息放开头和结尾——利用U型效应
- 别指望AI自己记住——它的设计里就没有"记忆"这个模块
下回你发现AI"失忆"了,别生气。它不是在偷懒,是它从来就没记住过。是你忘了再次告诉它。
📖 本文是MST「30天AI科普专栏」第18篇 / 共25篇 🔖 分类:实操技巧 关注MST,每天一个AI小知识,把大模型讲明白。