ARTICLE · 1331890
一周下载 270 万次:这个开源插件只做一件事,把 AI 的上下文折叠起来
一个反着走的项目
2026 年的 AI 编程工具,竞争焦点之一是上下文窗口:200K,512k 再到百万级,参数表上的数字一年翻几番。
窗口变大解决了一部分问题,也带来两个副作用。一是成本跟着长度走,历史每一轮都要重发;二是上下文越长,模型对关键信息的注意力越分散,业内把这个现象叫 context rot。
GitHub 上有个项目走了反方向:billion-context,作者 ranxianglei。2026 年 8 月 6 日建仓,到 11 月 8 日,4,808 个 star,388 个 fork,910 个 open issues,TypeScript 实现,npm 上最新版本 0.1.213。
它的项目描述里写着一句放在今天相当反常识的话:100K 上下文就够用。
它做的是折叠,不做摘要
常见的上下文管理方案是:用量逼近上限,触发一次总结,把前面的对话揉成一段,重新开窗。代价很明确:细节丢了,模型从“记得”变成“大概记得”。
billion-context 换了条路:它把代理层插在 agent 和模型 API 之间,用自研的 acp-kernel 重写 Anthropic、OpenAI 的请求流,而不是做宿主内置的摘要器。
同时它向对话里注入四个工具:
工具
作用
compress
把一段已消费的消息折叠成详细摘要
decompress
需要精确细节时原样还原
search_context
在摘要与可见消息中做关键词检索
acp_status
报上下文占用,以及哪些区间仍可压缩
关键设计是:压不压、压哪一段,由模型自己判断,而不是由一个写死的阈值决定。压缩是增量的、可还原的;折叠过的区间在历史里保持摘要态,直到被显式还原。
换个说法:它是折叠,不是删除。
真正难的是缓存
压缩方案的技术门槛,往往不在“能不能压”,而在“压了会不会把缓存砸了”。
主流模型 API 都支持前缀缓存,命中部分按折扣价结算。历史文本一改,缓存前缀失效,下一轮按全价重算;省下来的 token 费用,从缓存那头又赔回去。
billion-context 的处理方式是摘要分段写入,尽量保持缓存前缀完整。项目 README 给出的数据是:健康会话的前缀缓存命中率 95% 到 97%,压缩本身的成本不超过 2%。
这两个数字来自项目方,没有独立复现,只当作者口径看。但工程方向是站得住的:毁掉缓存的压缩,省的是假钱。
它甚至不着急压
第二个与直觉相反的地方:它不按窗口位置触发。
多数工具的逻辑是用到八成再压。它按增长触发:默认在启动内容之后每涨 50K token,提醒模型一次,这个步长可以用 compress.nudgeGrowthTokens 调整;真正的兜底只有一个,输入本身超过窗口时由 preflight 强制介入。
结果是首次压缩可能推迟到 20 万 token 附近才发生。
这在工程上是笔账:压得越早,丢的细节越多;压得越少,任务连贯性越好。它把固定阈值换成了一个可调的参数。
两个配套细节也值得一提。一是它不改写用户的本地会话文件,压缩只作用于发往模型的那份内容。二是在 DeepSeek Harness(dsh)上,它会主动关闭宿主自带的 auto-compaction:两个压缩器同时跑,容易互相干扰。
数据与外部信号
README 里引了三组第三方评测:LongMemEval-S、ContextBench、MemoryAgentBench,合计 1,500 项。其中 LongMemEval-S 上为 79.20%,对比的最佳 RAG 方案是 62.60%;ContextBench 排在头部;148 万 token 的长会话中,早期信息存活率 100%。仓库内含 paper/ 目录的预印本。
这些均属项目方引用,不构成独立背书。
外部信号更实在一些。腾讯新闻 11 月 6 日一篇盘点 DSH 插件的报道提到,billion-context 在 dshmarket 的下载榜上排在最前面,最近一周下载量 270 多万次,比第二名高出好几倍。11 月 8 日,它仍在第三方 GitHub 日榜上,日增约两百星。
一个新项目,三个月,靠一个“省 token”的功能做到这个量级,说明长会话成本已经是刚需级的痛点。
要说清的代价
压缩本质上有损。即便支持还原,也依赖模型判断“哪段已经没用”。判断失误时,早期定下的约束可能到很晚才暴露出来。910 个 open issues 摆在那里,功能请求和 bug 混在一起,项目仍处在快速迭代的阶段。
另有一条容易被忽略:License 不是纯 MIT。主体是 MIT,但附了一条产品界面署名条款:用于用户可见的产品或服务时,须在首页、文档或 About 页面显著标注 uses billion-context 并附仓库链接。这也解释了 GitHub 为什么把它归为 NOASSERTION。
这条款比较宽松,但也很明确,更像是作者在给后续留出空间。
谁能用,怎么装
覆盖范围相当宽:原生插件支持 pi、omp、opencode、dsh、kimi、hermes、zcode;Claude Code 走插件市场;启动器方式还能带起 codex、gemini、qwen、aider、copilot、zed 等,合计二十多个客户端。
npm install -g billion-context
bili plugin install claude
bili
bili start 默认占用 8787 端口。三种用法可选:原生插件、启动器,或直接把 baseURL 指到代理地址前。
判断
这件事的意义可能超过插件本身。
过去两年,上下文能力的叙事一直朝着“更长”走。但窗口再长,注意力预算有限,成本也随长度上涨。真正的问题早就不是“装不装得下”,而是“装进去的东西值不值这个钱”。
如果这类压缩层被主流 harness 默认集成,而现在已经有二十多个客户端能接入,那么评价一个 AI 编程工具时,最重要的指标可能不再是“上下文多大”,而是“压缩得干不干净”。
这个判断有可能错。但在 2026 年 11 月,它是少数敢逆着参数表走的方向之一。
项目地址
https://github.com/ranxianglei/billion-context














































































