乐于分享
好东西不私藏

RTK:让AI编程工具Token消耗直降90%的命令行代理

RTK:让AI编程工具Token消耗直降90%的命令行代理

大家好,我是苍一,一个干了13年的后端开发,正在探索AI编程,从产品到开发的全生命周期最佳实践,如果您感兴趣,欢迎关注👇,看我如何自我革命。

AI编程工具越来越强,但账单也越来越吓人。以Claude Code为例,真正拿来干活,20美元的基础套餐根本扛不住,多数人得上100美元的Max 5x,甚至200美元的Max 20x。

Token消耗的大头其实不在对话本身,而在命令输出。AI编程助手每次执行shell命令,完整的输出内容会被原封不动塞进上下文窗口。一条git status可能返回几千token,一个npm test能吞掉几万。

rtk做的就是在这个环节插一刀。

它怎么工作的

rtk是一个用Rust编写的命令行代理,单一二进制文件,没有外部依赖。它拦截AI编程工具发出的shell命令,在输出送进模型上下文之前进行过滤和压缩。

通过注册Bash钩子实现透明拦截,整个过程对上层透明,AI工具感知不到中间发生了什么。

四种压缩策略

1️⃣ 智能过滤

去掉注释、空行、样板代码。读取源文件时只保留函数签名和关键逻辑。

2️⃣ 分组聚合

将相似条目归类。目录列表按层级折叠,错误信息按类型合并。

3️⃣ 截断处理

保留相关上下文,砍掉冗余部分。长日志只保留头尾和关键信息。

4️⃣ 去重合并

重复的日志行合并为一行加计数。

实际节省效果

30分钟基准测试数据:目录列表节省80%,文件读取节省70%,代码搜索节省80%,git status节省80%,测试运行节省90%。整体从约118000 token降到23900,降幅80%左右。

安装和配置

Mac和Linux一条命令搞定:

curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

然后根据AI编程工具执行初始化:

rtk init -g                    # Claude Code
rtk init -g --copilot          # GitHub Copilot
rtk init -g --agent cursor     # Cursor
rtk init -g --codex            # Codex

目前支持12种AI编码工具。

支持的命令类型

文件操作:rtk ls输出精简目录树,rtk read智能读取文件内容,rtk find和rtk grep处理文件查找和内容搜索。

Git相关:status、diff、log等命令的输出都会被压缩。

测试运行:cargo test、npm test、pytest、go test等,这是token消耗的重灾区,也是rtk效果最明显的地方。

每种命令都可以叠加不同的压缩级别。

查看节省统计

运行rtk gain可以看具体数据。统计会列出每条命令的原始token数、实际消耗token数和节省比例。实测中单条命令最高节省99.8%。

局限性

rtk只能优化经过Bash通道的命令输出,对AI工具内置的原生工具无效。另外压缩是有损的,在复杂调试场景下可能需要临时调低压缩级别。

项目地址:https://github.com/rtk-ai/rtk

如果嫌文章太长、怕后面走丢,可以关注下面的ima知识号,让这篇文章成为你的知识顾问,随时随地等候你的提问。

知识号中内容会以笔记形式分享,可以根据大家反馈和实测情况,实时更新,保证最新方案的稳定、可用。

【ima知识库】苍一AI编程