用过AI编程助手的人大概都经历过这种崩溃:一开始它还能给出精准的回应,帮你把模块拆得明明白白。可聊到第20句,它突然忘了你最开始定下的架构规则,把之前修好的bug又原样写了一遍,甚至凭空捏造出几个根本不存在的函数。

这不是你的错觉,也不是AI变笨了。你撞上的,是每个大模型都绕不开的物理边界——上下文窗口(Context Window)。不管你是正在搭AI Agent的开发者,还是只想让ChatGPT、Claude、Gemini输出更靠谱的普通用户,搞懂上下文窗口的运作机制,都是提升AI使用效果最直接的一条路。

打开网易新闻 查看精彩图片

上下文窗口到底是什么?

把大语言模型想象成一个智商极高但患有短期失忆症的特聘专家。它每次回答你的问题,都不是像人一样从长期记忆里调取过往对话,而是把你发来的所有内容从头到尾重新读一遍。这个"重新读一遍"能容纳的最大信息量——包括文本、代码、系统指令、附件——就是上下文窗口。

只要你的对话总长度没超过窗口上限,模型每次生成下一个字之前都会把完整历史过一遍。可一旦超出限制,最早的那些信息就会被挤出视野。模型看不到被挤掉的内容,只能靠剩下的只言片语去猜前面发生了什么——幻觉和自相矛盾,就是这么来的。

Token:AI眼中的文字碎片

要理解窗口大小怎么算,先得知道AI怎么读文字。机器不认字,只认数字。文本进入窗口前,先要过一个叫分词器(Tokenizer)的工具,把原始文本拆成一个个小单元,也就是Token

Token不总是一个完整的词,它可能是:

  • 一个完整单词(比如"cat"算1个Token)
  • 一个词的一部分(比如"amoral"被拆成"a"和"moral",算2个Token)
  • 一个标点、一个空格,甚至一个字母

有个粗略的换算参考:标准英文文本里,100个单词大约等于150个Token,也就是每个词约1.5个Token。

从Token到向量:AI怎么理解语义

文本被拆成Token之后,AI怎么知道这些Token是什么意思?这就轮到嵌入(Embedding)登场了。嵌入会把每个Token转换成一个数学向量——一串由几百上千个数字组成的坐标,指向一个多维的"语义空间"。意思相近的词,在这个向量空间里会靠得很近。

这套机制决定了AI对上下文的理解方式:它不是在"读"你的话,而是在计算一串数字之间的距离和关系。窗口越大,它能同时计算的关系就越多,回答的连贯性也就越好。

为什么窗口再大也不够用

理解了Token和嵌入,你就能明白上下文窗口失效的根源了。窗口不是硬盘,装进去就永久保存;它更像一块随时会被覆盖的白板。对话一长,最早写下的规则、约定、修正记录,都会被新内容顶掉。模型不是故意犯错,是它真的看不见那些被挤出去的信息了。

所以下次再遇到AI"失忆",别急着骂它。先看看你的对话是不是已经逼近了窗口上限——很多时候,把关键指令重新发一遍,比继续追问管用得多。