"用 AI 写代码,一个月账单 500 块。"当代程序员的新型怨念。
你有没有这种感觉:让 AI 帮你干个活,它每次"开口"都要先把你们上午聊的内容、昨天的报错、上周的代码全重复一遍,然后再说正事。
Token 是什么,为什么费钱
先科普一句:跟 AI 对话是按 token 计费的。简单说,token 就是 AI 眼里的"字",不过比中文字更碎,"Hello"大约是 1 个 token,"你好"大约是 2 个。聊得越多,工具返回的内容越长,消耗就越大,账单也越难看。真正的冤大头是工具输出。你让 AI 帮你搜文件、跑代码、调 API,它不只看结果,会把整个工具返回的原始内容都塞进对话里。一个文件列表、一段报错日志,动不动就是几千上万 token,全算你的钱。
CTC 是什么
我做了个叫 Context Token Compressor(CTC)的小工具,就是解决这个问题的。它坐在你的 AI 客户端(Codex、Claude Code 这类工具)和模型之间,消息发出去之前先压缩一遍:把废话去掉,把重点留下,再传给模型。打个比方,有点像发微信语音自动转文字,还顺手把"那个、然后、就是说"都删掉了,只留干货。- 压缩工具输出。AI 调用工具返回的日志、文件列表、API 响应,通常又长又啰嗦,CTC 只留关键信息。
- 压缩老消息。对话轮次多了,前面的旧内容也会被适度压缩,省掉重复的废话。
- 协议桥接。有些客户端只会说 OpenAI 那套"方言",有些模型比如 DeepSeek 说的是另一种,CTC 负责在中间翻译,让两边能顺畅对话。
- 数据面板。有个 Dashboard,能看到省了多少 token、成功率多少、压缩效果如何。
为什么不压得更狠?
看到这里你可能会问:既然要省钱,为什么不把所有内容都压缩到极限?这个问题问得好,也是 CTC 设计里最核心的取舍。想象一下,你有个长期合作的 AI 助手。你告诉过它:"我不喜欢用 Redux,所有项目都用 Zustand""每次提交前必须跑测试""那个客户不能超报价"。这些内容存在对话历史里。如果压缩器为了省 token,把这些"细节"当废话删掉,AI 下次就可能给你推荐 Redux,忘记要跑测试,给那个客户报了高价。表面上 AI 还是那个 AI,但它对你的理解已经偏了。这就是"认知漂移"——上下文被过度压缩,AI 保留了"大概意思",但改变了否定条件、优先级和适用范围,最终形成错误的用户画像。所以 CTC 的目标不是追求最高压缩率,而是在省钱的同时,保证 AI 对你的理解不发生偏移。
跟同类工具有什么不一样
同期有两个开源项目也在解决相邻的问题,放在一起比比更清楚: | | | |
| | 针对 git、pytest、rg 等常用命令有专门解析器,压缩更精准 | |
| | | 不减少输入 token;激进改写可能影响语气、条件和细节 |
| | | 不具备 RTK 的逐命令专业解析,规则压缩也不能保证语义绝对无损 |
三个项目解决的其实是三个不同阶段的问题,并不冲突。CTC 借鉴了两者风险可控的部分:从 RTK 学了工具输出去重和关键信息提取,从 Caveman 学了去填充词,但只在"旧消息"上用,最近的 6 条对话完整保留。另外有个细节:对于路径、文件名、版本号、错误码这类"精确 token",CTC 会单独用一个 factsheet 存下来,防止在压缩时被当废话顺手删掉。毕竟在Linux操作系统上, /usr/local/bin 和 /usr/bin 是两回事,AI 搞混了会出大事。
三种模式,按需选
因为不同场景对"语义安全"的要求不一样,CTC 提供了三档:- safe 模式:只压缩工具输出,对话正文完全不动。适合长期运行的 AI 助手,首要任务是保住用户画像和长期记忆。
- dev 模式:在 safe 的基础上,对较旧的消息也进行压缩,同时保留最近 6 条完整。适合写代码的场景,工具调用密集、历史消息更新快,压缩收益最大。
- off 模式:完全透传,不压缩任何内容。适合小说创作、法律文本、精确配置等必须逐字保真的情况。
通常按客户端来源配置,写代码的工具默认用 dev,长期 Agent 默认用 safe。但也不是死规定,遇到需要精确审计的任务,随时可以切到 off。
真实数据:26 天省了多少
这不是 PPT 上编的数字,是我在服务器上真实跑了 26 天的统计:翻译成大白话:差不多每花两块钱,帮你省出将近一块。如果你是不熟悉会话和任务管理的新手,那节省比例更高,在我初学 AI Agent 工具阶段,软件统计的节省效率高达 80% 以上。说明一下,47% 是基于官方定价的反事实估算,实际因模型定价和缓存策略会有出入,不是账单保证。但省钱这个方向是真的,我自己天天在用,账单降得很实在。
谁适合用
用 AI 写代码的开发者最合适。Codex、Claude Code 这类工具天然产生大量工具输出,压缩效果最明显。长期运行 AI Agent 的人也合适。对话轮次多、历史上下文长,而且最不能容忍认知漂移——safe 模式就是为这个场景设计的。自建 AI 工作流、喜欢折腾的人也合适。想接 DeepSeek 但客户端不支持?CTC 帮你把协议桥接过去。不太适合的情况:如果你只用官方 ChatGPT 网页版聊天,这个工具用不上,它是给 API 调用场景设计的。
怎么装
Linux 用户一行命令搞定,需要 Python 3.11 以上:git clone --depth 1 --branch v1.0.0 \ https://github.com/zxzxzx258/context-token-compressor.git \ && cd context-token-compressor \ && sudo bash scripts/install_linux.sh
curl http://127.0.0.1:8787/healthz
返回一段 JSON 就说明装对了。Dashboard 在http://127.0.0.1:8788,数据看得很直观。
macOS 和 Windows 目前还没有官方安装器,想用的话可以让你的 AI Agent 读一下仓库里的 README 和部署脚本,自己适配一下,欢迎折腾完之后回来提 PR。
开源,MIT 协议,欢迎挑刺
https://github.com/zxzxzx258/context-token-compressor
https://gitee.com/linus2077/context-token-compressor
不收钱,代码全公开,能跑能看能改。用了觉得好,给个 Star;发现问题,提个 Issue;有更好的压缩思路,直接 PR,我看到就会回。大家都在用 AI,一起把账单往下压一压,才是正经事。
每一个被压缩掉的冗余 token,都是一次不动声色的省钱。