← 返回上下文 Context 是什么?
1 / 7
Tutorial·7

上下文 Context 是什么?

上下文窗口是模型的工作记忆,不是它的知识库。讲清一次请求里都装了什么、窗口有多大、为什么装满了反而变笨,以及它「忘事」的真实原因

TL;DR · 一句话结论

上下文(Context)指模型这一次生成回答时能读到的全部文字,装它的额度叫「上下文窗口」。系统提示词、历史对话、你贴的资料、工具返回的结果、以及它自己要输出的回答,全都占这个额度。现在主流模型的窗口是 20 万到 100 万 token,但塞得越满,准确率和召回反而会下降(官方称之为 context rot)。所以关键不是塞满,是塞对。

1
Step 1

开篇:同样的模型,为什么别人用得比你好

你和同事用的是同一个工具、同一个模型,他产出的东西就是更准、更贴合。差别经常不在提示词写得多漂亮,而在于他给模型看到的东西不一样

这个「能看到的东西」,就是这一篇要讲的上下文(Context)。

它是本站第 4 段(让 AI 高效工作)的核心概念,也是你以后遇到这些问题时的解释:

  • 聊到一半它开始忘记前面说过的
  • 明明发过的文件,它说没看到
  • 对话越长它越啰嗦、越跑题
  • 工具突然提示「上下文已满,正在压缩」

这一篇只讲清楚它是什么、装了什么、有多大。怎么管好它是 4.2 的主题。

2
Step 2

定义:它这一次能读到的全部文字

Anthropic 的官方文档给的定义很直接:

上下文窗口指的是模型在生成回答时可以参考的全部文字,包括它自己生成的这段回答。这不同于它训练时读过的海量数据,而更像是模型的**「工作记忆」**。

拆成两句人话:

  1. 它是这一次的工作台,不是它的知识库。训练时学到的东西存在模型里(上一篇讲的知识截止),上下文是你这一次临时摆上去给它看的材料。
  2. 它有额度上限,单位是 token(2.6 专门讲这个单位)。超了就装不下。

很多人以为「我上传过这份文件,它就永远记得了」——不是的。文件的内容是在这一次请求里被塞进上下文给它看的,请求结束就没了;下次要用,工具会再塞一次。

一句话:上下文 = 它这一次的可见范围。 你没放进去的东西,它就是看不见。

上下文是本轮工作记忆,与模型永久知识库不同
上下文是本轮工作记忆,与模型永久知识库不同
3
Step 3

一次请求里都装了什么

官方文档写得很明确:请求里的一切都算进上下文——系统提示词、消息列表里的每一条(包括工具返回结果、图片、文档)、以及你提供的工具定义;模型这一轮生成的内容(包括它的思考过程)同样占额度。

落到你的日常使用,一次请求的上下文通常包含:

内容谁放进去的大概占多少
系统提示词工具/产品几百到上万字,你看不见
项目约定文件(如 CLAUDE.md工具自动读几百到几千字
历史对话工具自动带越聊越多
你贴的资料 / 附件取决于文件大小
工具返回的结果agent 工具经常是最大头,比如读进来的一整个文件、一次搜索的结果
它的思考和回答模型也算

注意倒数第二行。在 agent 工具里,真正吃掉额度的往往不是你打的字,而是它自己读进来的东西:一次搜索返回几十条结果、一个文件几千行,全都进了上下文。

这解释了一个常见现象:你什么都没多说,但它「读了几个文件」之后就突然变慢、开始压缩了。

系统提示词、项目文件、历史对话和工具结果都会占用上下文
系统提示词、项目文件、历史对话和工具结果都会占用上下文
4
Step 4

窗口有多大:现在主流是 20 万到 100 万

上下文窗口的大小按模型算,单位是 token(1 个中文字大约 0.6 个 token,2.6 会细讲)。

目前的大致水位(2026 年 8 月):

量级大概能装多少中文典型情况
20 万 token约 30 万字一批较小或较早的模型,日常够用
100 万 token约 160 万字现在多数旗舰模型的规格,Claude 的 Opus / Sonnet 系列、DeepSeek V4、Kimi K3 都在这一档

100 万 token 是什么概念?一本《三体》全集大约 90 万字,也就是说理论上你可以把整套书塞进去让它读。

但这里有个陷阱:能装下 ≠ 用得好。下一步就讲这件事。

上下文窗口有容量上限,输入和输出都会消耗 Token
上下文窗口有容量上限,输入和输出都会消耗 Token

顺带一提:窗口大小是模型的属性,不是工具的。同一个 agent 工具接不同的模型,可用额度就不同——这也是选模型时要看的一项(2.6)。

5
Step 5

为什么塞满了反而变笨

官方文档里有一句话值得你记住:

更大的上下文窗口让模型能处理更复杂、更长的输入,但上下文不是越多越好。随着 token 数量增长,准确率和召回都会下降,这个现象叫做 context rot(上下文腐烂)

翻译成使用体验就是:

  • 你在第 3 轮说的关键要求,聊到第 40 轮它开始不遵守了
  • 你贴了 10 份文档,它回答时抓的是最不相关的那一份
  • 明明写在开头的约束,它中途就忘了

所以官方的结论是:「筛选放进上下文的内容」和「窗口有多大」同样重要

上下文内容过多过杂会让模型更容易抓错重点
上下文内容过多过杂会让模型更容易抓错重点

这也是为什么本站第 4 段花整整一篇讲上下文管理(4.2)。核心思路就三条:

  1. 该新开就新开:换了一个任务,就开新会话,不要在一个长对话里干十件事
  2. 只给必要材料:不要「以防万一都贴上」
  3. 长期信息写成文件:项目背景、你的偏好这些,写进项目约定文件里长期带上,而不是每轮重复

记住这句:上下文管理不是省钱技巧,是质量技巧。

6
Step 6

装满之后会发生什么

额度用完,不同工具的表现不一样,常见的有三种:

① 直接报错。 走原始 API 的时候,输入超过窗口会返回「prompt is too long」这类错误。

② 自动压缩(compact)。 现在的 agent 工具普遍会在快满的时候,把前面的对话总结成一段摘要,用摘要替换原文继续聊。你会看到「compacting conversation」之类的提示。压缩之后细节会丢,这就是它「忘了刚才的细节」的真实原因。

③ 丢掉最早的内容。 一些聊天产品按「先进先出」滚动:新的进来,最早的出去。你不会收到任何提示,只会感觉它前面说过的忘了。

上下文窗口装满后可能报错、自动压缩或丢掉最早内容
上下文窗口装满后可能报错、自动压缩或丢掉最早内容

你该怎么应对:

  • 看到工具提示压缩,就是一个信号:这个会话该收尾了。把当前结论落到文件里,然后新开一个
  • 重要的约定不要只在对话里说,要写进文件(4.3 长期记忆)
  • 一个会话只干一件事,干完就换

你以为的「AI 记性差」,多数时候其实是上下文被压缩或者被挤掉了

7
Step 7

总结:三句话记住上下文

问题答案
上下文是什么模型这一次能读到的全部文字,它的工作记忆
里面装了什么系统提示词 + 项目文件 + 历史对话 + 你的材料 + 工具返回 + 它的回答
有多大按模型算,现在主流 20 万~100 万 token
满了会怎样报错、自动压缩、或者悄悄丢掉最早的内容
塞满好不好不好,越长越容易抓错重点(context rot)

上下文不是它的记忆,是你每次递给它的那叠材料。 递什么、递多少,决定它答得准不准。 接着看:这叠材料怎么计费和消耗,去 2.6 Token;怎么管好它,去 4.2 如何管理上下文;怎么让重要信息每次自动带上,去 4.3 长期记忆

FAQ · 常见问题
上下文和记忆是一回事吗?

不是。上下文是这一次请求的可见范围,请求结束就没了。你在产品里看到的「记忆」功能,实现方式通常是把要长期记住的内容存成文件或数据库,下次请求时自动塞进上下文——本质上还是靠上下文,只是有人替你重新递了一遍。

上下文窗口越大越好吗?

大一点更从容,但不能靠它偷懒。官方明确说过 token 越多准确率和召回会下降。真正的用法是:窗口大意味着你可以一次放进一整份长文档,而不是意味着你可以把十件不相关的事堆在一个会话里。

怎么知道现在用了多少上下文?

多数 agent 工具会在界面上显示已用比例或剩余额度(比如 Claude Code 可以用 /context 查看)。走 API 的话,每次响应都会返回 usage 字段,写明这次消耗了多少 token。

同一个问题,为什么新开会话答得更好?

因为旧会话里堆了大量与这个问题无关的历史,稀释了重点,甚至可能已经被压缩过。换成干净的上下文 + 一次说清要求,通常立刻就好了。这是最简单也最有效的一招。

1 / 7