上下文窗口是真实存在的硬约束
所有 LLM 都有上下文限制。Claude 3.5 Sonnet 标称 200k tokens,但系统提示词占约 20k,工具定义占约 15k,固定开销就吃掉 35k 左右。留给对话的空间大约 165k tokens,如果每轮对话平均 4k tokens,50 轮就会把窗口用尽。
传统的截断策略粗暴丢弃早期消息,问题很明显:用户说过的重要信息凭空消失,模型可能重复询问已经回答过的问题,或者做出与前文矛盾的判断。长对话场景下,这种信息丢失会直接导致任务失败。
Claude Code 用四级渐进式压缩应对这个问题。四级策略从轻到重依次触发,核心目标是在有限的 token 预算内尽可能保留对任务有用的信息。