📦 使用 cc-expand 将可用上下文窗口扩大 60%,甚至更多
最近做了一个小工具 cc-expand,用来解决 Kimi 在 CC 中使用时过早压缩的问题。
这个工具一开始是个简单的脚本,最近才下决心把它做成包。
一方面是估摸着国产大模型很快会步入全面 1M 上下文时代,这个包可能随时会被抛弃,另一方面,讲真,我也不确定这玩意儿的性能增益具体有多少。
不过可以这么说,社区的主流意见是,上下文压缩会带来模型性能下降,所以可以看到 GSD 等 SDD(Spec Driven Development)框架,都是围绕「尽可能在不压缩的会话里,即一个上下文内解决一个任务」这种思路来设计的。
此外,我们还经常听说一些因为压缩丢失细节而导致的莫名其妙的问题。
所以,做这个小工具的初衷很简单:既然 Kimi 支持 256K 上下文,那就把 CC 的上下文长度也顶到 256K。
理论上有很多种方法可以实现这个功能。举个例子,你可以把 token 上限设到 1M,然后通过 CLAUDE_CODE_AUTO_COMPACT_WINDOW 来控制压缩时机;
也可以设置 CLAUDE_CODE_MAX_CONTEXT_TOKENS 并关闭自动压缩。但这些方法都不够性感,所以我做了 cc-expand。
它的原理很简单:patch Claude Code 的本地二进制,把内部写死的、与上下文窗口相关的一些变量提高到你设定的目标值,从而推迟 auto-compaction,让 Claude Code 在更长的上下文里保持高性能。
比如我日常使用的模型支持 256K context,我会把目标窗口设到 270000,这样自动压缩的触发点会从 167k 明显后移到 237k。默认 CC 有约 30k 的压缩预留区,设置到 270k 后,长任务比如重构、多文件阅读, 会舒服非常多。
经过最近几周的体验,我认为 270k 作为 CC 重度开发时预留的压缩缓冲是安全的。对喜欢折腾 Claude Code、希望榨干上下文窗口的人来说,这个小工具会很好玩。
cc-expand 的功能有这些,支持安装 CC、patch、验证、恢复等命令,并且支持 Mac 和 Windows 双平台。
期待国产模型早日上到 1M 吧,在此之前抓紧玩耍!