rtk:给 AI 编程 Agent 装上「省 token 漏斗」,命令输出压缩 60-90%
用 Claude Code、Cursor、Codex 这类 AI 编程 Agent 时,一个常被忽视的成本黑洞是:Agent 执行的每一条 shell 命令,其原始输出都会被塞进上下文窗口。git status 的冗余状态行、npm test 成百上千条通过用例、ls -R 的冗长列表……这些对模型判断几乎无用,却实实在在消耗着你的 input token。
rtk(Rust Token Killer)就是为解决这个问题而生的 CLI 代理。它是一个单文件 Rust 二进制,在命令输出到达 LLM 之前对其进行过滤和压缩,目前已在 GitHub 收获 84,810 颗星。
项目概览
| 项目 | rtk |
|---|---|
| 仓库 | rtk-ai/rtk |
| Star | 84,810 |
| 语言 | Rust |
| 协议 | Apache-2.0 + BUSL-1.1(另有纯 Apache-2.0 的 oss 版) |
| 定位 | 面向 AI Agent 的终端输出压缩代理 |
rtk 的口号是「Agent-agnostic token optimization: compress, route, filter, and more」——它不绑定任何特定 Agent,通过 hook 机制拦截 shell 命令调用,对 100+ 种常见命令的输出做结构化压缩,开销低于 10ms。
核心功能
1. 针对命令类型的智能压缩
rtk 不是粗暴截断,而是按命令语义做结构化精简:
| 命令 | rtk 的处理方式 |
|---|---|
ls / tree |
树形格式 + 文件计数,而非每行一条 |
cat / read |
智能读文件:优先签名和结构,而非全文 |
grep / rg |
截断长行,按文件分组匹配 |
git status |
紧凑统计格式,按状态分组 |
git diff |
减少上下文,剥离头部 |
git log |
只保留哈希、作者、标题 |
cargo test / npm test |
只显示失败用例,通过的折叠为计数 |
pytest |
只显示失败,裁剪 traceback |
docker ps |
只保留关键字段 |
2. 与主流 Agent 无缝集成
rtk 支持一键为各种 AI 编程工具配置 hook:
rtk init -g # Claude Code / Copilot(默认)
rtk init -g --gemini # Gemini CLI
rtk init -g --codex # Codex (OpenAI)
rtk init -g --agent cursor # Cursor
rtk init -g --agent windsurf # Windsurf
rtk init --agent cline # Cline / Roo Code
rtk init -g --agent trae # Trae
rtk init --agent hermes # Hermes
配置后重启 AI 工具,Agent 在执行 git status 等命令时会被自动改写为 rtk git status,收到的就是压缩后的输出,无需显式调用 rtk。
3. 三个发行版,按需选择
rtk 提供三种下载,两个 rtk 版本安装的二进制同名(hook 和脚本通用),不能同时装:
- rtk(Apache-2.0 + BUSL-1.1):hook 核心 + 全部命令过滤器 + 压缩引擎
- rtk-oss(纯 Apache-2.0):hook 核心 + 全部命令过滤器,无引擎
- rtk-proxy(BUSL-1.1):独立的 API 流量压缩守护进程
生产环境使用免费(含引擎和守护进程)。BUSL 限制的是把 rtk 或其衍生品作为商业产品/服务提供给第三方——这种情况需联系官方。
4. 开销极低,不拖慢开发
rtk 是单 Rust 二进制,处理延迟 <10ms,开发者几乎感知不到。它不包含 tokenizer,节省比例通过 bytes / 4 估算——百分比可靠,但绝对 token 数为近似值。
安装方式
brew install rtk # macOS / Linux
winget install rtk-ai.rtk # Windows
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
安装后验证:
rtk --version # 查看版本
rtk gain # 应显示节省面板(而非 command not found)
注意:crates.io 上有另一个同名项目,确认
rtk gain能正常运行才是这个 rtk。
使用示例
配置完成后,Agent 调用命令时 rtk 自动生效。也可以手动调用查看效果:
rtk git status # 紧凑的状态输出
rtk git log # 只显示哈希、作者、标题
rtk read src/main.rs # 智能读取文件结构
查看节省情况:
rtk gain # 打开节省 dashboard
工作原理:
无 rtk: Claude --git status--> shell --> git --> 完整原始输出 --> Claude
有 rtk: Claude --git status--> RTK --> git --> 过滤压缩输出 --> Claude
适用场景
- 重度使用 AI 编程 Agent:每天让 Claude Code / Cursor / Codex 跑大量 shell 命令的开发者,token 账单肉眼可见下降。
- 大仓库 / 大输出命令:
npm test、pytest、git log等输出爆炸的场景,压缩收益最大。 - 多 Agent 协作:团队里多个 Agent 同时跑命令,rtk 一次配置全员受益。
- 预算敏感的个人开发者:每一点 input token 都要精打细算时,rtk 是性价比很高的「节流」工具。
简要评价
rtk 的思路非常务实:它不试图改变 Agent 的推理能力,而是在「信息进入上下文之前」做一次无损的结构化精简。60-90% 的 bash 输出压缩,换算到实际账单上虽然会被 prompt、系统提示、历史记录等稀释,但对于频繁跑命令的重度用户,省下的真金白银依然可观。
它的优势在于:单二进制、零依赖、<10ms 延迟、100+ 命令覆盖、主流 Agent 一键接入。8 万星的增长速度也说明这是 AI 编程时代的刚需工具。
需要注意的几点:BUSL 协议对商业化有限制(个人/团队内部生产使用免费);hook 只对 bash 工具调用生效,Agent 内置的 Read/Grep/Glob 等不走它——这种情况可以用 rtk read、rtk grep 手动调用。
如果你已经在为 AI Agent 的 token 账单头疼,rtk 是那种「装上就忘不掉」的工具。

评论(0)
暂无评论,来抢沙发~
请 登录 后发表评论