词元语宙 logo:阴阳鱼与「词」「元」二字 词元语宙
LLM · 大语言模型 适合 工程师

上下文窗口与记忆:大模型的工作记忆之谜

长上下文不等于无限记忆:理解注意力稀释与 lost in the middle,用记忆工程替代堆上下文的不可持续方案。

更新于 2026-09-25 # 上下文窗口# RAG# 记忆工程# 长上下文

上下文窗口是什么

上下文窗口(Context Window)是模型单次对话能”看见”的全部内容上限,单位是 token——包括系统提示、历史对话、检索进来的资料和当前问题。可以把模型的机制理解为:每次生成新 token 时,窗口内的所有内容都会被重新读取一遍(技术上通过注意力机制,Attention)。

模型没有任何跨请求的内置记忆。你关掉页面再打开,它不记得你;你以为它”记得”,只是因为应用把历史对话塞回了上下文。所谓”模型的记忆”,全部是工程拼装的结果——理解这一点,是设计 AI 系统的第一课。

长上下文 ≠ 无限记忆

近年主流模型的上下文窗口从几千 token 扩展到数十万甚至百万级,能一次吞下一整本书。于是常见一种乐观判断:“上下文够长,直接全塞进去就行,还要 RAG 干什么?”

这个判断有三处漏洞:

注意力稀释。 注意力本质是对窗口内信息的分配权重,内容越多,平均到每处的关注度越薄。关键信息被大量无关内容包围时,利用率显著下降。

Lost in the Middle。 研究表明,模型对开头和结尾的信息利用最好,埋在中部的信息容易被忽略。即便答案就在窗口里,放错位置也可能答错。

成本与延迟。 注意力的计算开销随上下文长度增长,长窗口意味着更高的费用和更慢的响应,且每次请求都要重复付费。

一个准确的类比:上下文窗口是工作记忆(Working Memory)——像人的大脑在一场对话里能同时记住的信息量。工作记忆大是好事,但没有人靠工作记忆记住一生所学,人靠的是笔记、档案和检索。

RAG 与外部记忆的分工

检索增强生成(Retrieval-Augmented Generation, RAG)的思路是:把知识存放在模型之外(向量库、数据库、文档系统),每次请求时只检索出最相关的片段放入上下文。它与长上下文不是替代关系,而是分工:

  • 知识(静态、量大、需要更新):放外部,用 RAG 按需取用——文档、产品手册、企业知识库。
  • 工作记忆(动态、当前会话相关):放上下文——本轮对话、本次任务的中间结果。
  • 长期记忆(跨会话的偏好与事实):单独建设——用户画像、历史摘要、重要结论,按需注入。

长上下文真正擅长的场景是”整块材料需要被通读”:审一份长合同、分析一篇论文。此时材料本身是任务对象,塞进窗口是对的。反之,从十万份文档里”找”三段相关内容,是检索的活,不是工作记忆的活。

观点:记忆工程比堆上下文更可持续

本篇观点:当系统需要的知识超过”单次任务的材料”这个量级时,堆上下文是技术负债,记忆工程才是资产。

堆上下文的问题会随时间复利:成本线性增长、延迟恶化、信息淹没导致质量下降,而且换一个上下文更短的模型(出于成本或合规)时整个方案崩塌。记忆工程前期投入更大——要设计存储结构、检索策略、记忆写入与遗忘机制——但它把知识沉淀在模型无关的层里,模型升级、更换、降配都不影响积累。

判断标准很简单:如果这些信息一年后还需要被用到,就不该只活在上下文里。

小结

  • 上下文窗口是工作记忆:模型没有跨请求内置记忆,一切”记忆”都是工程拼装。
  • 长上下文受注意力稀释、lost in the middle、成本延迟三重约束,不等于无限记忆。
  • RAG 管静态知识,上下文管当前任务,长期记忆需要单独建设。
  • 知识若需长期复用,应沉淀在模型无关的记忆层,而不是堆在上下文里。

延伸阅读

同专题更多文章