Claude Code "100% Context Used" 误报排查手册
你正在一个长会话里稳定地干活,突然状态栏跳成红色——100% context used。
这种场景下,大多数人会条件反射地执行 /compact 或者关掉会话重来。但如果这件事发生在 CLI 刚刚完成一次自动更新之后,你可能正在被一个已知 Bug 吓唬。
发生了什么
Claude Code 在自动更新后,会短暂地将上下文窗口大小重置为 200K——即使你当前模型的真实窗口是 1M。
百分比的计算方式很简单:
used%=窗口大小已用 Token当分母从 1,000,000 骤降为 200,000,而你的会话已经累积了 30 万 Token 时,显示结果自然是 100%。但实际上你离真正的上限还远得很,会话完全可以继续。
这个问题在 v2.1.208(2026-07-14)中被修复。官方 Changelog 原文:
Fixed the context window (and auto-compact indicator) briefly resetting to 200k after the CLI auto-updates, causing a false “100% context used” when resuming long-context sessions.
真满还是假满:一张表判断
| 假满(200K 重置 Bug) | 真满 | |
|---|---|---|
| 触发前兆 | 刚完成自动更新,或更新后 Resume 了长会话 | 长时间多轮对话、大量文件读取、大段工具输出 |
| 会话表现 | 能正常对话和调用工具 | 模型开始遗忘指令、反复报错、回答质量明显下降 |
/context 检查 | 窗口上限显示为 200K,但各分项加起来远低于模型真实窗口 | 各分项总和确实逼近模型真实窗口上限 |
| 正确做法 | 升级到 ≥ 2.1.208,或重启 CLI | 执行 /compact 或 /clear,拆分任务 |
判断口诀:先看版本,再看能不能继续干活。能干活 + 刚更新过 = 假满。
排查步骤
%% caption: 排查决策树:先看版本能不能升级,不能升级就重启;只有确认是真满才 /compact 或 /clear
flowchart TD
Q1{"claude --version<br/>≥ 2.1.208?"}
Q1 -->|否| U["升级:claude update"]
Q1 -->|是| Q2{"/context 窗口上限<br/>等于模型真实窗口?"}
Q2 -->|否,仍显示 200K| R["彻底退出 CLI 重启<br/>claude --resume"]
Q2 -->|是,数据吻合| Real["真满:/compact 或 /clear"]
class U,R keep
classDef keep fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#0a0a0a
第一步:确认版本
claude --version
如果版本号 < 2.1.208,你大概率踩中了这个 Bug。升级即可:
claude update
# 或通过 npm
npm i -g @anthropic-ai/claude-code
# 确认
claude --version
第二步:用 /context 看真实数据
在会话中输入 /context,关注两个东西:
- 窗口上限——如果你用的是 1M 模型但这里写着 200,000,就是分母被重置了。
- 各分项用量——历史对话、系统提示、工具输出等加起来的总量。如果总量只有十几万但百分比显示 100%,假满无疑。
第三步:尝试重启
如果暂时无法升级,彻底退出 CLI 进程再重新启动(不是关掉终端标签页):
# 退出后重新进入
claude --version
claude --resume
Bug 存在于更新后的短暂窗口期,干净重启通常能让窗口元数据恢复正确。
第四步:不要急着 /clear
假满状态下执行 /clear 是纯亏——你会丢掉所有可以继续使用的会话上下文,解决的却是一个不存在的问题。
只有当你确认是真满(模型行为已经劣化、/context 数据吻合),才需要压缩或清理。
底层原因
虽然官方没有公开实现细节,但从行为上可以推断:
- CLI 自动更新触发进程重启或热重载。
- 重启过程中,上下文窗口大小回退到默认值 200K(历史遗留的安全默认值)。
- 状态栏和 Auto-compact 指示器都依赖这个值计算百分比。
- 当 Resume 的会话实际用量超过 200K(在 1M 窗口下完全正常),百分比被钉死在 100%。
v2.1.208 修复的就是这条路径:确保更新后窗口元数据不会被错误重置。
与日常上下文管理的区别
修复假满 Bug 不等于你不需要管理上下文。真实的上下文膨胀仍然会发生,好习惯依然重要:
- 切换任务时执行
/clear,避免历史噪声污染新任务。 - 重度探索交给 Subagent,不要让大量工具输出堆在主会话里。
- 按需读取文件,不要一次灌入整个代码库。
- 养成看
/context分项数据的习惯,而不是只盯着百分比数字。
百分比是 UI 表象;/context 的分项数据和实际交互质量才是判断依据。
速查卡片
| 问题 | 答案 |
|---|---|
| 更新后突然 100%? | ≤ 2.1.207 版本的已知 Bug,升级到 ≥ 2.1.208 即可 |
| 怎么区分真假? | 假满:能继续干活 + 刚更新过 + /context 显示 200K 上限。真满:模型行为劣化 + 用量确实高 |
| 升不了级怎么办? | 彻底退出 CLI 再重启,Resume 回同一会话 |
| 真满了怎么办? | /compact 压缩或 /clear 重来,拆分任务粒度 |