Skip to content

上下文与压缩机制

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

适合谁看

  • 对话很长时,发现 Claude Code “忘了前面说过什么”。
  • 缓存费用突然变化,想知道是不是压缩导致。
  • 想调整自动压缩触发阈值。

什么是上下文窗口

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

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

为什么会触发压缩

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

压缩后可能出现:

  • 早期细节变模糊。
  • 之前命中的缓存失效。
  • 下一次请求费用变高。
  • 需要你重新补充关键背景。

调整压缩阈值

Claude Code 可通过环境变量调整自动压缩阈值:

txt
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE

推荐值是 7880,表示上下文使用到大约 78% 或 80% 时提前压缩,避免撑到极限才处理。

~/.claude/settings.jsonenv 里加入:

json
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-xxxxxxxxxxxxxxxx",
    "ANTHROPIC_BASE_URL": "https://max.c-api.cc",
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "78"
  }
}
参数值效果适合谁
100更晚压缩短对话、轻度使用
78 / 80提前留出余量大多数重度用户
60更频繁压缩极长任务,但会更容易丢细节

怎样减少压缩后的遗忘

把长期有效的信息写进记忆文件,而不是只放在聊天里。

  • Claude Code 使用 CLAUDE.md
  • Codex 使用 AGENTS.md
  • 项目背景、代码规范、常用命令适合放进去。
  • 临时讨论、一次性需求不适合放进去。

继续看:记忆文件说明