1. 大型项目里,Claude Code 的“记忆”不是越长越好——它会主动遗忘,但你得知道它忘的是什么我接手一个 32 万行 Java + Spring Boot 的金融风控中台项目时,第一周就踩进了一个隐形坑:每次让 Claude Code 分析“为什么RiskScoreCalculator在并发场景下返回空值”,它给出的诊断结论总在变。前一次说“是@Cacheable注解没配keyGenerator”,下一次又说“是CompletableFuture的线程上下文丢失”,第三次干脆建议我重写整个AsyncRiskService。不是模型不稳定,而是它每次看到的上下文片段完全不同——就像让一个专家连续三天只凭三张随机抽出来的图纸判断整栋大楼结构。后来我把所有请求日志拉出来比对,发现一个关键事实:Claude Code 并非“记不住”,而是“被迫选忘”。它的上下文窗口(Context Window)不是缓存池,而是一条单向传送带。当新内容进来,旧内容不是慢慢淡出,而是被硬生生截断、丢弃。更麻烦的是,它不会告诉你删了哪段——直到你某次想让它基于pom.xml里的依赖版本解释某个NoSuchMethodError,它却回复:“未找到相关依赖配置”。这就是本节要解决的核心问题:在超长上下文场景下,不是“塞多少”,而是“留哪些”。我们团队在三个大型项目(平均代码量 24.7 万行,模块数 68±12)上实测过:当把整个src/
Claude Code 超长上下文压缩实战:大型项目中 7 类信息的取舍清单
发布时间:2026/5/20 7:00:56
1. 大型项目里,Claude Code 的“记忆”不是越长越好——它会主动遗忘,但你得知道它忘的是什么我接手一个 32 万行 Java + Spring Boot 的金融风控中台项目时,第一周就踩进了一个隐形坑:每次让 Claude Code 分析“为什么RiskScoreCalculator在并发场景下返回空值”,它给出的诊断结论总在变。前一次说“是@Cacheable注解没配keyGenerator”,下一次又说“是CompletableFuture的线程上下文丢失”,第三次干脆建议我重写整个AsyncRiskService。不是模型不稳定,而是它每次看到的上下文片段完全不同——就像让一个专家连续三天只凭三张随机抽出来的图纸判断整栋大楼结构。后来我把所有请求日志拉出来比对,发现一个关键事实:Claude Code 并非“记不住”,而是“被迫选忘”。它的上下文窗口(Context Window)不是缓存池,而是一条单向传送带。当新内容进来,旧内容不是慢慢淡出,而是被硬生生截断、丢弃。更麻烦的是,它不会告诉你删了哪段——直到你某次想让它基于pom.xml里的依赖版本解释某个NoSuchMethodError,它却回复:“未找到相关依赖配置”。这就是本节要解决的核心问题:在超长上下文场景下,不是“塞多少”,而是“留哪些”。我们团队在三个大型项目(平均代码量 24.7 万行,模块数 68±12)上实测过:当把整个src/