上下文管理
你在 上下文工程 里学过——AI 一次能记住的字数有限,怎么把最重要的东西放进去,就是上下文管理做的事。这篇讲具体怎么做的。
问题:AI 的脑子有多大
AI 一次能处理的文字量是有限的。这个限制叫”上下文窗口”。
- 早期 GPT-3:几千字
- GPT-4 Turbo:约 10 万字(一本 300 页的书)
- Gemini 3.5 Pro:约 200 万 token(相当于整部电影对白 + 数十小时音频)
窗口很珍贵。你塞进去的每一个字,都在占用 AI 的”注意力”。塞太多无关的东西,AI 反而会漏掉重点 1。
如果什么都塞进去
你把整个项目文档、所有聊天记录、所有相关文章一股脑塞给 AI,会发生什么:
- 花钱更多。AI 按你塞进去的字数收费。多塞一倍的字,多花一倍的钱。
- 回答变差。AI 被太多信息淹没,可能漏掉关键信息——这就是”大海捞针”问题。研究表明,当上下文过长时,AI 对中间部分的注意力明显下降。
- 速度变慢。处理 10 万字比处理 1000 字慢很多。
四种管理策略
1. 摘要压缩
把长文档压成短摘要。就像你看一篇几千字的论文,先读摘要一样——摘要告诉你这篇文章大概讲了什么。如果摘要恰好跟问题相关,再读全文。
工具:LLMLingua(一种专做压缩的 AI 工具,2023 年出现,2024 年更新了第二代)可以把 1000 字的文档压到 200 字,保留关键信息。
2. 分块检索
不是把整篇文档塞进去,而是把长文档切成小段(叫”分块”)。每段几百字。AI 只读取跟问题最相关的几段——就像查字典不是从头读到尾,而是翻到需要的词条。
分块方式也一直在进化:
- 最早:按固定字数切(每 500 字一段)
- 后来:按段落意思切(一段话讲完了再切)
- 现在:先理解整篇文档再切(Late Chunking,2025 年),更准确
3. 记忆系统
AI 底层是无状态的——每次对话都是重新开始。但产品层面可以加”记忆”:
- 短期记忆:记住当前对话里说过的话
- 长期记忆:跨对话记住你的偏好、习惯、重要信息
- 工具:Mem0(2023 年开源)专门做这件事——把用户说过的重要信息存起来,下次对话自动调取
这就是为什么你问 ChatGPT 这样的 AI 对话工具”你还记得我上次让你帮我改的那段话吗”,它可能记得——不是 AI 本身有记忆,是产品在帮它记。
4. 上下文压缩
对话越来越长怎么办?把前面聊过的内容定期压缩。
比如你跟 AI 聊了 20 轮,前 10 轮已经不重要了。系统自动把前 10 轮压缩成一段摘要——“前面聊的是用户要写一篇关于 AI 的文章,已经确定了大纲和前三段”。然后只保留最近 10 轮的完整对话。
跟你有什么关系
你不需要自己写这些管理代码。但理解了这四个策略,你就能明白为什么有些 AI 产品”记性好”,有些”聊着聊着就忘了”——差别在记忆系统上。为什么有些 AI 产品回答质量高——差别在分块和检索上。
下次你问 AI 一个问题,它回答得特别好或特别差,想一想:是它塞进去的上下文好,还是不好?
相关笔记
- 上下文工程 — 上下文管理是上下文工程的具体实现
- 第13章 · RAG 进化树 — 分块和检索是 RAG 的前置步骤
- 第14章 · Agent 是怎么工作的 — Agent 需要上下文管理来记住多步任务的状态
来源
- Gemini 1.5 Pro Technical Report, 2024
- LLMLingua, 2024
- Mem0, 2024
注释
-
Gemini 1.5 Pro Technical Report, 2024 ↩
关联8
知识图谱局部图谱 · 点节点跳转