每个 LLM 都有一个硬性上限,规定一次请求最多能处理多少文字。这个上限叫做 context window。一旦超过,被挤出去的部分模型就看不到 — 对它来说那些字根本不存在。知道你用的模型 window 多大、里面该放什么,是「app 正常运行」跟「app 神秘地忘事」的差别。
单位是 token,不是字
Context window 用 token 计算。粗略换算:英文 1,000 tokens ≈ 750 词;中文 1,000 tokens ≈ 500 到 700 个字(依 tokenizer 而定);代码通常 1 token ≈ 3-4 个字符。
2026 年常见的 context window 大小:
- **GPT-5 / Claude Sonnet / Gemini 2.5 Pro:**Claude 200K、Gemini 长 context 模式 1M 以上。200K tokens 大约是一本 500 页的书。
- **较小 / 便宜模型:**32K 到 128K(对大多数任务已经够用)。
- **本地 / open-weight 7B-13B 模型:**8K 到 32K,用 RoPE scaling 等技巧可以再延伸。
这个窗口要容纳所有东西:system prompt、对话历史、你刚输入的消息,加上模型的回应(对,很多 API 把输出 token 也算进窗口)。
窗口里面到底装了什么
你调 LLM 的时候,prompt 是真的送进去的那一串 token 序列。对 chat app 来说,内容是:
- System prompt(产品设定的)
- 这个对话之前所有的 user/assistant 消息
- 你刚输入的消息
- 保留给回应的空间(通常 4K-8K tokens)
总和超过 window 的话,API 直接拒绝请求;chat 产品则通常会默默砍掉最旧的消息腾位置。这就是为什么长对话会「失忆」 — 最早那些消息真的不再被送出去了。
窗口变大不是万灵丹
几年前,把整本书塞进 prompt 听起来像科幻。2026 年 Gemini Pro 能吃 1-2M tokens,Claude extended 模式可达 1M。但长 context 不是白吃的。
**质量随距离下降。**模型在长 context 中,擅长找最前面或最后面的信息,中间区域比较差(俗称 “lost in the middle”)。如果你贴了 500K tokens 的文档,问题的答案刚好在中间,准确率明显掉。
**很贵。**现代 API 按 input token 计费。一次 200K tokens 的 Claude Sonnet 调用可以超过 $1,每一轮对话都要付这整段 prompt 的钱,除非用 prompt caching。对流量高的 app 来说,这笔钱可能比计算和存储加起来还多。
**很慢。**200K tokens 的 prompt 光处理就要 15-30 秒才开始吐第一个 token。交互 UI 受不了这个。
**RAG 常常赢长 context。**只把相关的 5,000 tokens(搜出来的)放进窗口,通常比硬塞 500,000 tokens 答得好。RAG 系统的存在,正是因为长 context 对大多数检索问题不是正解。
怎么规划 context 预算
设计 LLM 功能时,把 context 预算当成服务器内存来规划:
- **保留输出空间。**决定模型最长能回多少字,乘 1.2 安全系数。
- **截断对话历史。**旧消息超过某个阈值就摘要或砍掉。
- **只放需要的东西。**用 RAG 取最相关的 3-10 个片段,不要整个知识库塞进去。
- **用 prompt caching。**Anthropic 和 OpenAI 都有 prompt caching,重复 prefix 收原价 10%。长 system prompt + 共用文档搭这个,直接省 5-10 倍成本。
什么时候长 context 才是正解
长 context 不是错,有些场合赢 RAG:
- 文档够小、塞得下,而问题需要整份文档(例如「总结这份合同」)
- 切块会失去精度(法律、医学需要跨段推理)
- One-off 查询,不想维护向量库
- 需要对整段输入做可追溯的推理 — RAG 有可能默默漏掉关键段落
什么时候不要靠大窗口
- **针对同一知识库的重复查询。**RAG + caching 又便宜又快。
- **延迟敏感的 UI。**讲求即时 stream 的产品,prompt 要短。
- **想要把 500 份文档全部丢进去的场合。**不要。先搜索、再用 top-K 做 prompt。
延伸阅读
- 什么是 token
- 什么是 RAG
- Tokens vs 字数:LLM 计价怎么算
- LoRA vs fine-tuning vs RAG:哪个解哪种问题
- 为什么 input token 比 output token 便宜