ChengRang

人人都能懂的科普:AI 为什么总是"忘事"

人人都能懂的科普 约 10 分钟阅读

跟 AI 聊得稍微久一点,你大概都遇到过这种事:

聊到第 20 多条,问它"我刚才说我女儿叫什么来着?",它一本正经地猜了个错的。

或者你让它分析一份长文档,它前半段记得很清楚,后半段就开始胡说八道。

或者你让它"按我前面提的格式继续写",它压根没按那个格式。

读完这篇文章你会发现一件挺颠覆的事:AI 其实根本没有记忆。 它能"接着上次的话题聊",全靠一个隐形的伎俩。这个伎俩叫"上下文",背后还有一套按字数算钱的逻辑叫"token"。这两个词搞清楚,你日常用 AI 遇到的大半困惑都能解释。

这是人人都能懂的科普系列第三篇,前两篇分别讲了谁在干活什么是 agent。本文不依赖前文,但读过会更顺。

AI 其实没有记忆

先说一个反直觉的事实:你跟 AI 聊天的时候,每次发一条新消息,整段对话历史会被重新发给 AI 一遍

听起来很奇怪。你可能以为是这样:

你说一句 → AI 记下来 → 下次你说话 → AI 想起之前的事 → 接着聊

实际上是这样:

你说一句 → 助手软件把"你之前所有的话 + AI 之前所有的话 + 你这次的话"全部打包成一段长文本 → 发给 AI → AI 看完这一整段,回一句 → 助手软件把回的话也加进对话历史 → 等你下一次发话

AI 看完就忘。它不知道自己上一秒说过什么。它每次都是当场读一遍这段长文本,然后回一句,回完就退场。下次再问,再来一次。

之所以你感觉它"记得",是因为那段被重新发过去的长文本里,把过去聊过的所有内容都附带过去了。这段长文本就是"上下文"。

一个具体例子

你跟 AI 这么聊:

你:我女儿叫小花。
AI:好的,你女儿叫小花,明白了。
你:她今年 6 岁。
AI:知道了,小花 6 岁。
你:明天她生日想吃什么蛋糕?

最后一句话发出去的瞬间,助手软件实际给 AI 发的是一整段:

(系统设定:你是一个 AI 助手,要友好回答。)
(用户:)我女儿叫小花。
(AI:)好的,你女儿叫小花,明白了。
(用户:)她今年 6 岁。
(AI:)知道了,小花 6 岁。
(用户:)明天她生日想吃什么蛋糕?

整段一起发过去,AI 看完才知道"哦你前面说过她叫小花、6 岁,所以这个生日蛋糕的问题是问小花的"。

如果助手软件偷懒只发最后一句"明天她生日想吃什么蛋糕?"过去,AI 就只能反问"谁的生日?"。

上下文是什么

上下文就是上面那一整段被打包发过去的长文本。

它一般包括这么几样东西:

所以一段对话的上下文是会越来越长的。每多聊一句,都会往这段长文本里再加几行,下一次发出去的就比上一次更长。

上下文有上限

这是关键的事实:模型一次能读多少字是有上限的。这个上限就是大家说的"上下文窗口"。

不同模型上限不一样,目前主流模型大致是:

1 个汉字 ≈ 1.5 token,100 万 token 大概等于 65 万汉字,差不多一本《三国演义》。

上限就像一个杯子的容量。你聊得越多、贴的资料越长,杯子越满。一旦超过,要么就报错"内容太长了",要么助手软件会偷偷把最早的那几句话扔掉,腾出空间塞新内容(这就是为什么聊久了 AI"忘了你最早说的事")。

为什么聊久了 AI 会变笨

跟杯子越来越满有关。

杯子装满了,最早的那些对话被踢出去,AI 看不见了,就回答不上来。 杯子还没装满但已经塞了一大堆东西,AI 要在一大堆内容里翻找重点,注意力被分散,就容易抓错重点或者前后矛盾。

你应该见过这种情况:跟 AI 聊到一定长度,它开始重复自己说过的话,或者突然忘记你之前定下的规则。这不是它"累了",是它脑子里的内容太多了,新的指令在一堆历史里没被它注意到。

怎么应对

知道这个机制,几个常见困惑就有解了:

AI 看长文本的注意力是 U 型的

还有一件事跟"上下文有上限"相关,但是另一回事:就算窗口没满,AI 看长文本时注意力也是不均匀的——开头记得最清楚,结尾记得也比较清楚,中间那部分最容易被略过。这件事研究上叫 "Lost in the Middle",跟人读一本厚书时印象最深的往往是开头和结尾是一个道理。

知道这件事,几个用法马上能调整:

Token 是什么

上面说"杯子能装多少字",其实更精确的说法是"杯子能装多少 token"。

Token 是模型算字的单位。它不完全等于一个字、一个词、一个字母。模型在处理文字之前,会先把文字切成一小段一小段的 token,再去处理。

切的规则大致是:

所以同样的"5 万字",英文和中文换算成 token 数差挺多。作为大致的换算:1 个汉字 ≈ 1.5 个 token,1 个英文单词 ≈ 1 个 token。

为什么不直接按"字"算,要发明 token 这个东西?因为模型内部就是这么处理文字的。这是技术细节,普通用户记住"token ≈ 字"就够了。

按 token 算钱

用 AI 是要花钱的(你用免费版只是因为有人替你买单)。账是这么算的:

每次跟 AI 对话,发过去的所有内容AI 回的所有内容都按 token 数算钱。一个典型的价格是:

注意"发过去的所有内容"这一点。因为对话历史每次都要重发,聊得越久,每次发过去的内容越多,每次都要付历史那部分的钱

举个例子:

第 1 句:你好。                          → 发 5 个 token
第 2 句:我女儿叫小花。                   → 发 第1句+AI回复+这一句,约 30 个 token
第 3 句:她 6 岁。                        → 发 前面所有 + 这一句,约 60 个 token
第 4 句:生日蛋糕推荐?                   → 发 前面所有 + 这一句,约 100 个 token
...
第 50 句:你前面说的那个第三个建议是啥?  → 发 前面所有,可能已经 5000 个 token

每多聊一句,要付的"历史复读"成本就更高。这就是为什么有些助手软件会在聊到一定长度时偷偷"压缩"早期对话(用一段简短总结代替原文)。这件事一举三得:省钱、给后面的对话腾上下文空间、避免上下文塞太满之后 AI 注意力被冲散开始胡说。

聊一晚上等于复读多少遍

跟 AI 聊一晚上 100 条消息,最后那条发出去的瞬间,前面 99 条对话已经被原原本本地重新发过去了 99 遍。

第 1 条被发了 100 遍(每次新对话都带它)、第 2 条被发了 99 遍、第 50 条被发了 51 遍……加起来背后是几千次复读。这就是为什么"AI 持续聊一整天"看上去免费,背后烧掉的算力相当于几百次单条问答。

所以一段对话不要无限拖下去,该新建就新建。长上下文模型也不是为"无限聊天"设计的,是为这几种场景设计的:一次塞一份长合同让它审、一次塞整个代码库让它改、一次塞一本书让它问答、Agent 跑长任务一路记着前面做过什么。日常聊天用不到这么大的窗口。

为什么 ChatGPT 有时候让你充会员

它免费版给你的上下文窗口往往是缩水版(比如只能用 32000 token),会员才给你大窗口(40 万甚至更高)。窗口越大,能聊得越久、能塞的资料越多、token 成本越高,所以贵。

哪个模型上下文最长

各家都到 100 万 token 起步了,窗口本身已经不是核心竞争力。真正决定长文档表现的是"在长上下文里抓重点的能力",这个差距比窗口大小大得多。

几件值得说一下的事

AI 没有"记性",全靠每次重新读一遍。 你以为它在跟你"持续对话",其实它是每次都重新看一整段对话历史,回完一句就退场。下次再来还是从头读一遍。它不会比一条金鱼更"记得"你。

新建对话 = 让 AI 失忆。 因为新对话里没有附带历史,AI 就真的什么都不知道了。这就是为什么换一段对话问同样的问题,得到的答案可能不一样。

让 AI 记住"重要事项"的最好方法是写在最近一条消息里。 不要指望它会从 50 条之前翻出你定的规则。规则被埋在一堆对话里就跟没说一样。重要的事情每隔一段就重申一次。

附文档进去要有取舍。 一份 100 页的合同直接扔给 AI 让它"读完告诉我所有问题",效果通常很差。因为 AI 注意力会被分散在 100 页里。更好的做法是先告诉它你最关心哪几个点,让它针对性看。

Token 是真金白银。 每次贴一份长文档进去对话、每次让 AI 重读历史、每次让它输出 5000 字的报告,背后都是有人在付钱。免费版的"对话长度限制"不是故意刁难你,是因为对话越长成本越高。

几个容易搞错的事

清空聊天记录就清空了 AI 对你的记忆。 没错,但前提是这段对话没有被任何"长期记忆"机制额外存下来。有些 AI 助手(比如 ChatGPT)支持"记忆"功能,会主动把"用户女儿叫小花"这样的事抽取出来存到一个独立的小本子上,下次新对话开始时再附给 AI。要彻底清,记得也把这个小本子清掉。

上下文越大越好。 不一定。窗口大不代表 AI 注意力强。塞太多内容进去,AI 反而抓不住重点。给 AI 的内容应该尽量精简,不是越多越好。

AI 在思考的时候在"记"东西。 不是。AI 没有内部记忆。所谓"思考"也是它在输出过程中边写边推理,写完就忘。它脑子里没有任何持久状态。

Token 数 = 字符数。 不是。Token 是模型自己内部的切词单位,跟字符数不是一一对应。一段中文比同样意思的英文用的 token 通常多一些(这也是为什么中文场景下 AI 用起来往往更贵的原因之一)。

AI 突然忘了我前面说的事 = 它在压缩历史。 不一定。更常见的做法其实更粗暴:助手软件直接把最早那几轮对话扔掉,只保留最近 N 条。所以你以为它"刚才还记得呢,怎么突然就忘了",实际上是因为那段话刚被丢出窗口外了。这种处理方式叫"滑动窗口",省钱省事,代价就是 AI 看上去会突然失忆。

对话越长每条都全价复读。 不是了。现在 GPT、Claude、DeepSeek、通义这些主流模型都会"记住"开头那段不变的内容(系统设定、早期历史),后续聊天里这部分不会重新算钱,只按一两折计费。所以"对话越久越贵"虽然方向对,但没有线性那么夸张——真正贵的是新增的那部分内容。这套机制叫"前缀缓存",对你来说不需要做任何操作,AI 平台自己会处理。

一句话

AI 没有记忆,每次回话都是当场读一段长文本然后说一句,读的内容叫上下文,按 token 算钱。

理解了这件事,你以后会少踩很多坑:聊太久不要硬聊、重要的事要再说一遍、长文档要拆开看、对话历史就是钱。

← 返回目录