Skip to content

上下文与压缩机制

本页解释 Claude Code 的上下文窗口和自动压缩。它不是安装必读,但适合经常长对话、长时间写代码的用户。

适合谁看

  • 一次会话连续工作很久。
  • 经常让 CLI 读取大量文件。
  • 发现模型后半段开始忘记早期约束。
  • 想理解为什么缓存、费用和压缩会变化。

什么是上下文窗口

你和模型对话时,历史消息、文件内容、工具结果都会占用上下文。上下文窗口就是模型一次能处理的最大内容容量。

不同模型的窗口大小不同,具体以官方和当前渠道实际支持为准。文档里不要把模型窗口写成永久固定值,因为模型版本和线路能力会变化。

为什么会触发压缩

Claude Code 会根据当前对话累计占用判断是否需要压缩。压缩的目的不是丢数据,而是把早期内容总结成更短的摘要,让对话能继续进行。

压缩后可能出现:

  • 早期细节被概括,精确文件名或约束被弱化。
  • 模型记得“做过什么”,但忘了某个具体限制。
  • 缓存重新建立,费用曲线发生变化。

调整压缩阈值

如果你希望更早触发压缩,可以在 Claude Code 配置里加入:

text
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE

示例:

json
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-relay-xxxxxxxx",
    "ANTHROPIC_BASE_URL": "https://hk.getelucid.com",
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "78"
  }
}

78 表示上下文达到约 78% 时开始压缩。这个值不是越低越好:

阈值影响
较低更早压缩,长会话更稳,但可能更早丢细节
较高保留更多原始上下文,但接近上限时更容易中断

怎样减少压缩后的遗忘

把项目规则写进记忆文件

把长期规则写入 CLAUDE.md 或 AGENTS.md,而不是只放在聊天里。

阶段性要求复述状态

完成一个阶段后,让 CLI 总结当前决策、改动文件和未完成事项。

减少无关文件读取

不要让模型一次性扫全仓库,优先指定相关目录和文件。

关键约束重复落盘

验收标准、非目标、接口约束应写进 issue、计划或项目文档。

压缩是长会话的正常机制,不是错误。真正要避免的是只把关键需求放在聊天早期,而没有任何落盘记录。

给 Claude Code / Codex 用户准备的 Elucid Relay 文档