消息的含义
错误参考文档明确指出:“这是一种权限检查,而非配额耗尽。即使你的会话和每周津贴仍有余额,它也会触发。”
某些模型仅通过带有 [1m] 标记的变体才能达到 1M token 上下文窗口,而你的计划是否包含该变体取决于具体模型。Claude Code 的模型配置页面列出了适用该规则的两个模型:
- 带有 1M 上下文的 Opus 4.6:包含在 Max、Team 和 Enterprise 计划中,在 Pro 计划中需要 usage credits。
- 带有 1M 上下文的 Sonnet 4.6:在所有订阅计划(包括 Max)中都需要 usage credits。
较新的模型工作方式不同。同一页面提到 Fable 5.1、Fable 5、Sonnet 5 及更高版本、Haiku 5.5 以及 Opus 4.7 及更高版本“默认运行 1M 窗口,无需 [1m] 后缀”。
Usage credits 是 Anthropic 针对超出计划包含范围的使用进行的按量计费。当计划仅通过这种方式覆盖扩展上下文时,模型配置页面会显示“token 计入 usage credits”。如果未开启额度,需要该窗口的请求就会收到此错误。
为什么没选 1M 模型也会出现此错误
有两种情况会触发该错误。
你选择了 [1m] 模型。 你在 /model 中挑选了 1M 变体,或者在配置的某处设置了该变体,而你的计划只能通过 usage credits 使用它。错误参考文档指出,如果切换后错误仍然存在,“可能在其他地方设置了 1M 模型 ID”。
你的对话超出了标准窗口。 这是最令人意外的情况。参考文档描述道:“当此错误在对话中途出现,是因为上下文增长超过了 200K token,Claude Code 会自动将对话压缩回标准上下文限制以下,并在此后将对话保持在该限制内,因此无需采取任何行动。”
这种自动处理是最近才加入的。10 月 26 日发布的 Claude Code v2.1.311 修复了“当请求超过 200K token 时,标准上下文会话停止”并报错的问题,并表示 Claude Code “现在会压缩对话并继续”。更早的修复(在 v2.1.172 中)涵盖了在不使用 usage credits 的情况下使用 1M 上下文时会“永久卡住”的会话。在 v2.1.172 之前的版本中,如果错误在每个请求中重复出现,参考文档建议运行 /clear 来恢复,这将开启一个全新的对话。
Claude Code 在对话中途遇到此错误时会怎么做
在当前版本中,流程如下:
- 一个请求将使对话超过标准限制。
- 你的计划在没有 usage credits 的情况下不包含该模型的更大窗口。
- Claude Code 将对话压缩回标准限制以下。
- 此后会话将保持在标准限制内。
参考文档中提到的“无需采取任何行动”在会话可以继续的意义上是正确的。但压缩会将对话替换为摘要,这改变了 Claude 面前掌握的信息。
压缩后对话会保留什么
Claude Code 的上下文窗口文档直接描述了压缩过程:“当长会话压缩时,Claude Code 会总结对话历史以适应上下文窗口。”随后它列出了各类内容的处理方式。
从磁盘重新加载。 项目根目录的 CLAUDE.md 和没有 paths 字段的 rules 会从磁盘重新注入。自动记忆(auto memory)以及 Claude 在计划模式下编写的计划也是如此。系统提示词和输出风格依然适用。
按需重新加载。 子目录中嵌套的 CLAUDE.md 文件和带有 paths: 前置内容的 rules 会按需加载,这意味着只有当 Claude 再次触及匹配的文件时才会加载。
部分恢复。 “压缩后,Claude Code 会立即重新读取 Claude 在会话中读取或编辑过的最多五个文件,选择最近修改的文件。”超过 5,000 token 的文件将以路径引用的形式返回,而非其具体内容。Claude 使用过的 Skill 主体会被重新注入,直到达到单个 Skill 和总量的上限,最旧的内容会被优先丢弃。
被总结。 仅存在于对话中的其他所有内容:你的解释、Claude 的发现、达成的决定以及之前通过钩子(hooks)添加的上下文。
文档增加了一个容易被忽略的细节:“路径范围的 rules 和嵌套的 CLAUDE.md 文件在 Claude 读取、写入或编辑其触发文件时加载到消息历史中,因此压缩会将它们与所有其他内容一起总结掉。”在 Claude 再次读取匹配文件之前,这些 rules 不会出现在它面前。
实际意义很简单:你在对话中说过且没有记录在别处的任何内容,现在的效果仅取决于摘要的质量。我们的自动压缩引导指南深入探讨了如何引导摘要保留你需要的内容。
在 Claude 桌面应用中
在 Claude 桌面应用运行的会话中,该消息的写法有所不同。错误参考文档称“提示中没有命令名称”:它会指向 claude.ai 的使用设置页面,或者在 Team 和 Enterprise 计划中,提示你在组织的设置中开启 usage credits 或联系管理员。其含义是相同的。
人们通常会尝试的操作
误以为达到了使用限制。 并没有。错误参考文档称其为权限检查,即使还有额度也可能触发。
反复运行 /compact。 在当前版本中,Claude Code 会自行压缩。在 v2.1.172 之前的版本中,参考文档称即使运行 /compact 错误也会重复出现。
开启 usage credits 并在同一会话中继续。 参考文档指出,开启额度后,你需要重启 Claude Code 或开始新会话(取决于消息提示)。“在此之前,会话将保持在标准上下文限制内。”
切换模型后再次看到错误。 你的配置、设置文件或环境变量中可能在其他地方设置了 1M 模型 ID。
当作什么都没发生一样继续。 对话已经被压缩了。原本只存在于聊天中的决定现在变成了摘要。
解决方案:确定窗口,然后保护压缩可能丢失的内容
第 1 步:决定是否需要 1M 窗口
大多数会话不需要。如果你的不需要,运行 /model 并选择不带 [1m] 后缀的变体。要从选择器中完全移除 1M 变体,参考文档建议设置 CLAUDE_CODE_DISABLE_1M_CONTEXT=1。设置后,模型配置页面称会话将在 200K 边界通过自动压缩进行处理。
如果你确实需要它,运行 /usage-credits。在 Pro 和 Max 计划中,这会打开 claude.ai 上的使用设置,你可以在那里开启或关闭额度,并检查余额和每月支出限制;在 Team 和 Enterprise 计划中,如果你有计费权限,它会打开组织的设置,如果没有,则向管理员发送请求。然后按照消息提示重启 Claude Code 或开始新会话。使用 API key 登录时该命令不可用。
第 2 步:将仅限对话的上下文移动到可保留的位置
在长会话达到限制之前,将重要内容放在压缩后会重新加载的地方。约定俗成的内容应放在项目根目录的 CLAUDE.md 中,它会从磁盘重新读取。文档对 rules 有明确说明:“如果一个 rule 必须在压缩后保持存在,请去掉 paths: 前置内容或将其移至项目根目录的 CLAUDE.md。”
对于会话期间达成的决定,请让 Claude 保存它们。Claude Code 的记忆文档提到,当你要求 Claude 记住某事时,它会将其保存到自动记忆中,压缩后会自动重新注入。
第 3 步:按你自己的方式进行压缩
你不必等待自动处理。上下文窗口文档建议运行带有指令的 /compact,例如 /compact focus on the auth bug fix(压缩并关注权限漏洞修复),这样“摘要会保留你选择的内容,而不是自动处理猜测的重要内容”。你也可以在不相关的任务之间运行 /clear,或者将大型研究任务发送给子代理(subagent),使其读取的内容不占用你的上下文。
在任何压缩之后,检查 Claude 是否仍拥有你需要的状态。要求它总结当前任务及其背后的决定,并纠正摘要遗漏的任何内容。我们关于 Claude 聊天过长的指南涵盖了 Claude 应用中的相同问题。
在 MemoryLake 中设置
1M 错误虽然是计费消息,但其影响是一个上下文问题:长对话变短了,原本只在对话中的内容现在依赖于摘要。你最不希望丢失的决定,正是你在会话本身中达成的那些。
MemoryLake 是一个记忆层,用于将这些决定保存在一个由你维护的列表中,供 Claude Code 以及你连接的其他助手(如 ChatGPT 和 Codex)使用。
你用自己的语言编写条目。MemoryLake 不会从你的 Claude Code 会话、摘要、CLAUDE.md 文件、自动记忆或任何供应商的存储中读取、写入或删除任何内容。压缩仍按 Anthropic 描述的方式工作。
第 1 步:创建 API key
登录并从控制面板生成一个 key。该 key 属于你的 MemoryLake 工作区,与你的 Claude 账户和 usage credits 是分开的。

第 2 步:上传你的第一条记忆
从压缩对你伤害最大的内容开始:最长会话中的决定及其背后的原因。每个条目一个决定,注明日期,并贴上适用的代码库标签。

第 3 步:连接你的 AI 和代理
连接 Claude Code 和你使用的其他助手。压缩后的会话、新会话或不同的工具都可以从相同的决定出发。

这在实践中改变了什么
第一个区别是该错误不再令人惊慌。你知道这只是权限检查而非使用限制,且当前版本会让会话继续。
第二个区别是你清楚压缩做了什么。根目录 CLAUDE.md、无范围限制的 rules 和自动记忆从磁盘恢复了;路径范围的 rules 等待匹配文件;对话变成了摘要。
第三个区别是重要部分从未仅存在于对话中。如果你稍后返回一个长会话,我们关于 Claude Code 恢复旧会话前警告的指南涵盖了恢复的成本,而我们关于空闲压缩的指南涵盖了在你离开时发生的压缩。
处理 1M 上下文错误的最佳实践
将其视为权限检查。 你的津贴可能没问题。
除非需要更多,否则保持在标准窗口。 选择不带 [1m] 的模型,或设置 CLAUDE_CODE_DISABLE_1M_CONTEXT=1。
开启 usage credits 后重启。 在重启之前,会话将保持在标准限制内。
更新 Claude Code。 当前版本会压缩并继续;旧版本可能会卡住。
保持必须在压缩后存续的 rules 为无范围限制。 或者将它们放入项目根目录的 CLAUDE.md。
在达到限制前进行有侧重点的压缩。 由你决定摘要保留什么。
压缩后检查状态。 要求 Claude 总结并纠正缺失内容。对于较长的子目录指令文件,我们关于 Claude Code 子目录 CLAUDE.md 限制的指南解释了大小限制如何取决于上下文窗口。
结论
“Usage credits required for 1M context”意味着你正在使用的模型需要 1M token 窗口,而你的计划仅通过 usage credits 包含该窗口。这是一种权限检查,而非使用限制。当它因为对话超过 200K token 而出现时,当前版本的 Claude Code 会将对话压缩回标准限制内并保持在该状态。
决定你是否需要更大的窗口,要么切换到标准变体,要么开启 usage credits 并重启。然后确保你关心的上下文存在于 CLAUDE.md、无范围限制的 rules 或自动记忆中,这些内容会在压缩后从磁盘重新加载。