超过 200K 不再卡在「需要 1M 上下文额度」:Claude Code 改为自动压缩继续
长会话做到一半,突然弹出一句 "Usage credits required for 1M context",然后整个会话停住——如果你遇到过,CLI 2.1.311 的这条修复就是为你准备的。
之前发生了什么
Claude Code 的会话分两种上下文规格:标准上下文(200K token)和 1M 长上下文。1M 上下文需要额外的用量额度,标准会话本不该用到它。
但在旧版本里,标准上下文会话一旦某次请求的体积超过 200K token,就会被当成 1M 请求处理,结果是直接报出需要 1M 额度的错误并停下。你没有主动开 1M,却被一个额度提示挡住,只能手动 /compact 或开新会话。
2.1.311 的处理方式
更新说明写得很直接:标准上下文会话的请求超过 200K token 时,Claude Code 现在会压缩对话,然后继续。
也就是说,这种情况被拉回到了正常路径:上下文快满了,就做一次压缩,把较早的对话浓缩成摘要,再接着干活。对你来说,基本感觉不到中断。
同一版本里还有两条相关改进,值得一起了解:
- 压缩更稳:如果模型的回复里没有摘要,Claude Code 通常会再要一次摘要,而不是直接用空内容替换对话。
- 压缩后读到最新的记忆文件:修复了自动压缩后,Claude 看到的
MEMORY.md、CLAUDE.md还是旧内容的问题(如果你在会话早些时候改过它们)。
实用建议
- 升级即可:这是行为修复,不需要改配置。运行
claude update或用你的包管理器升级到 2.1.311 以上。 - 压缩不是免费的:自动压缩会丢失部分细节。做大任务时,把关键约束写进
CLAUDE.md,比指望摘要记住更可靠。 - 主动拆任务:如果一个会话经常顶到 200K,考虑把调研类工作交给子代理,主会话只保留结论。
- 确实需要长上下文:如果你的任务真的离不开大窗口,再考虑开启 1M 上下文并准备好相应额度,而不是让标准会话硬撑。
小结
这次修复把一个「莫名其妙的额度报错」变回了「正常的上下文管理」。长会话用户升级后,最直观的感受就是:不再被一句额度提示半路拦下。