这是"从 LLM 到 Agent Skill"系列的第三篇。前两篇讲了 LLM 是"文字接龙"引擎,Token 是文本的最小单位。这一篇来解答一个更贴近使用体验的问题:为什么 ChatGPT 能"记住"你刚才说了什么?以及——它到底能记多少?


一、大模型是没有记忆的

先讲一个反直觉的事实:

大语言模型本身是无状态的。它没有任何"记忆"。

每一次你发送消息,模型都是从零开始计算的。它不记得上一轮对话的内容,不记得你是谁,不记得五分钟前你让它做了什么。

那为什么你在 ChatGPT 里聊天,它能接上你的上下文?为什么你上一句说"我叫小明",下一句它就能叫出你的名字?

答案不在模型内部,而在模型外面。


二、Context(上下文):模型的"临时记忆体"

2.1 Context 的构成

每次你跟 AI 对话,当你在输入框打完字按下发送键,后台实际发生的事情是:

程序把你这一轮之前所有相关的东西打包在一起,一次性发给模型。这个信息包,就叫 Context(上下文)

Context 通常包含以下内容:

┌─────────────────────────────┐
│  System Prompt(系统提示词)  │  ← 模型的人设和规则
├─────────────────────────────┤
│  第 1 轮:用户问题           │
│  第 1 轮:模型回答           │
├─────────────────────────────┤
│  第 2 轮:用户问题           │
│  第 2 轮:模型回答           │
├─────────────────────────────┤
│  ……                         │
├─────────────────────────────┤
│  当前轮:用户刚输入的问题      │  ← 你刚刚打的字
└─────────────────────────────┘

所以模型之所以看起来有"记忆"——

不是因为模型记住了什么,而是因为你把"记忆"重新发送给了模型。

每一轮对话,你都在把整段对话历史重新"喂"给模型。这是 AI 对话最核心的设计模式。

2.2 一个形象比喻:金鱼记忆

大模型有点像一条"金鱼"——或者说,像《记忆碎片》里的主角。

每一次对话回合,它都像刚从睡梦中醒来。你递给它一张纸条,上面写着你们之前所有对话的完整记录。它看完纸条,接上你的话,假装一直醒着。

但只要你把纸条上的某段历史删掉——它也就彻底"失忆"了。


三、Context Window(上下文窗口):记忆的上限

3.1 什么是 Context Window?

既然每轮都要把历史打包发给模型,自然就有一个问题:能打包多少?

这个上限,就是 Context Window(上下文窗口)

Context Window 定义了 Context 能容纳的最大 Token 数量

3.2 Context Window 的演进

Context Window 在过去几年经历了惊人的膨胀:

时期 代表模型 Context Window 大约能装多少中文
2022 GPT-3.5 4K Token ~6,000 字
2023 GPT-4 8K~32K Token ~1.2 万~4.8 万字
2024 GPT-4-Turbo / Claude 3 128K~200K Token ~19 万~30 万字
2025 Gemini / Claude 4 / Kimi 1M Token+ ~150 万字+

150 万汉字是什么概念?大约是一部《哈利波特与魔法石》的全文。也就是说,你可以把整本书粘贴进对话框(当然,前提是你的客户端支持)。


四、超长文档的问题:成本与注意力

Context Window 越来越大,那是不是什么问题都解决了?

不是。有两个核心问题:

4.1 成本

大模型 API 按 Token 计费。每次把 10 万字的文档完整塞进 Context,光输入成本就很可观。而且大部分内容跟当前问题无关。

4.2 注意力分散

更有意思的一个问题是"注意力稀释"。

Transformer 的注意力机制虽然强大,但当 Context 中充斥着大量与当前问题无关的信息时,模型的表现反而会下降。就像一个学生开卷考试,给了他整本教材——他反而找不到重点。

业界有一个很形象的说法:

"Lost in the Middle"(迷失在中间)

研究表明,大模型对 Context 开头和结尾的信息关注度最高,对中间部分的信息反而容易忽略。你把关键文档放在中间,可能白放了。


五、RAG:不塞全文,只取精华

这就引出了一个非常重要的技术方案——RAG

5.1 RAG 是什么?

RAG(Retrieval-Augmented Generation,检索增强生成) 不把整个文档塞进 Context Window,而是:

1. 用户提问:"公司去年的营收是多少?"
         ↓
2. 检索系统从知识库中找出最相关的几个段落
         ↓
3. 只把这些段落放入 Context,发给模型
         ↓
4. 模型基于这些精选信息生成回答

5.2 RAG vs 全文塞入

全量塞入 Context RAG
Token 消耗 极高
回答准确性 信息过多可能降低 相关性强,效果好
实时性 依赖静态文档 可以从实时更新的知识库检索
适用场景 短文档 长文档、海量知识库

RAG 是目前构建 AI 知识库应用的主流方案,几乎所有"AI 客服""企业知识助手"背后都有它的身影。


六、Context 管理在实际开发中的体现

如果你在做 AI 应用开发,Context 管理是绕不开的核心问题。几个关键实践:

对话轮次管理:当对话轮次过多、接近 Context Window 上限时,需要做"摘要压缩"——把较早的对话历史让模型总结成一段话,然后丢掉原始记录,用摘要替代。

System Prompt 减肥:System Prompt 也占 Context。写得啰嗦不仅浪费 Token,还占用了宝贵的"记忆"空间。

工具返回数据的精简:如果工具返回了一大段 JSON,直接塞进 Context 也会占很多位置。


七、总结

Context 和 Context Window 是 AI 应用的核心基建,记住三点:

  1. 模型本身没有记忆,"记住"靠的是每轮重发 Context。Context 包含了系统提示词、对话历史、当前问题等所有信息。

  2. Context Window 是 Context 的 Token 上限。窗口越来越大,但成本问题和"注意力稀释"依然存在。

  3. RAG 是处理超长文档的主流方案:不塞全文,只取最相关片段。

下一篇,我们来聊聊直接跟模型对话的"语言"——Prompt(提示词)


本系列文章:

  1. LLM 大语言模型

  2. Token 与 Tokenizer

  3. Context 与 Context Window ← 你在这里

  4. Prompt 提示词(待发布)

  5. Tool 工具调用(待发布)

  6. MCP 模型上下文协议(待发布)

  7. Agent 智能体(待发布)

  8. Agent Skill(待发布)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐