Appearance
上下文与压缩机制
本页解释 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、计划或项目文档。
压缩是长会话的正常机制,不是错误。真正要避免的是只把关键需求放在聊天早期,而没有任何落盘记录。