目录
RTK
RTK(Rust Token Killer)是一款高性能的 CLI 代理工具,能在命令输出进入 LLM 上下文之前进行过滤和压缩,从而将 Token 消耗降低 60-90%。单个 Rust 二进制文件,零依赖,每次处理开销 <10ms。
在 AI 编码助手的日常使用中,终端命令的输出(如 git status、ls -la、pytest、cargo build 等)往往是 Token 消耗的大头——大量无关的噪音信息占据了宝贵的上下文窗口。RTK 正是为了解决这个问题而生。
工作原理
RTK 作为代理层插入在 AI 工具和 Shell 之间:
不带 RTK:
智能体 --git status--> Shell --> git --> ~2,000 tokens(原始输出)
带 RTK:
智能体 --git status--> RTK --> git --> ~200 tokens(过滤后)
| |
+--- 过滤/压缩 -------+
RTK 对每种命令类型应用四种策略:
- 智能过滤(Smart Filtering)——去除注释、空白行、样板代码等噪音
- 分组聚合(Grouping)——将相似项聚合(如按目录分组文件、按类型分组错误)
- 截断保留(Truncation)——保留相关上下文,裁剪冗余信息
- 去重合并(Deduplication)——将重复的日志行合并为计数
支持的 AI 工具
RTK 支持主流的 AI 编码助手:
| AI 工具 | 集成方式 | 初始化命令 |
|---|---|---|
| Claude Code | Hook | rtk init -g |
| GitHub Copilot | Hook | rtk init -g |
| Hermes Agent | 插件 | rtk init –agent hermes |
| Codex(OpenAI) | Hook | rtk init -g –codex |
| Gemini CLI | Hook | rtk init -g –gemini |
| Cursor | Hook | rtk init -g –agent cursor |
| Windsurf | Hook | rtk init -g –agent windsurf |
| Cline / Roo Code | 插件 | rtk init –agent cline |
| Kilo Code | 插件 | rtk init –agent kilocode |
实际节省效果
以 30 分钟的 Claude Code 会话为例:
| 操作 | 次数 | 原始 Token | RTK 后 | 节省 |
|---|---|---|---|---|
ls / tree | 10 | 2,000 | 400 | -80% |
cat / read | 20 | 40,000 | 12,000 | -70% |
grep / rg | 8 | 16,000 | 3,200 | -80% |
git status | 10 | 3,000 | 600 | -80% |
git diff | 5 | 10,000 | 2,500 | -75% |
git log | 5 | 2,500 | 500 | -80% |
git add/commit/push | 8 | 1,600 | 120 | -92% |
pytest | 4 | 8,000 | 800 | -90% |
cargo test / npm test | 5 | 25,000 | 2,500 | -90% |
ruff check / golangci-lint | 3 | 3,000 | 600 | -80% |
docker ps | 3 | 900 | 180 | -80% |
| 合计 | ~118,000 | ~23,900 | -80% |
≈ 基于中等规模 TypeScript/Rust 项目估算,实际效果因项目而异。
支持的命令
文件操作
rtk ls . # 优化目录树 rtk read file.rs # 智能文件读取 rtk read file.rs -l aggressive # 仅显示签名(去掉函数体) rtk smart file.rs # 两行启发式摘要 rtk find "*.rs" . # 紧凑的查找结果 rtk grep "pattern" . # 分组搜索结果 rtk diff file1 file2 # 精简 diff
Git
rtk git status # 紧凑状态 rtk git log -n 10 # 一行一条提交 rtk git diff # 精简 diff rtk git add # → "ok" rtk git commit -m "msg" # → "ok abc1234" rtk git push # → "ok main" rtk git pull # → "ok 3 files +10 -2"
GitHub CLI
rtk gh pr list # 紧凑 PR 列表 rtk gh pr view 42 # PR 详情 + 检查状态 rtk gh issue list # 紧凑 issue 列表 rtk gh run list # CI 运行状态
测试运行器
rtk pytest # Python 测试(-90%) rtk go test # Go 测试(-90%) rtk cargo test # Cargo 测试(-90%) rtk jest / vitest # JS/TS 测试(仅失败项) rtk playwright test # E2E 测试(仅失败项) rtk rspec # Ruby RSpec(-60%+) rtk err <cmd> # 仅保留任何命令的错误输出 rtk test <cmd> # 通用测试包装器(-90%)
构建与 lint
rtk lint # ESLint 分组(按规则/文件) rtk tsc # TypeScript 错误分组 rtk next build # Next.js 构建精简 rtk cargo build # Cargo 构建(-80%) rtk cargo clippy # Cargo clippy(-80%) rtk ruff check # Python lint(-80%) rtk golangci-lint run # Go lint(-85%)
安装
快速安装(Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
安装到 ~/.local/bin/rtk,确保该目录在 PATH 中:
export PATH="$HOME/.local/bin:$PATH"
Homebrew
brew install rtk
Cargo
cargo install --git https://github.com/rtk-ai/rtk
验证安装
rtk --version # 显示 rtk 0.43.0 rtk gain # 显示 token 节省统计
快速上手
安装后,为你的 AI 工具初始化 RTK:
# Claude Code / Copilot rtk init -g # 重启 AI 工具,然后测试 git status # 自动被重写为 rtk git status,输出更紧凑
在 Hermes Agent 中集成
Hermes Agent 通过插件系统集成 RTK,与基于 Hook 的工具不同,Hermes 使用插件 API 在命令执行前进行重写。
操作步骤:
1. 安装 RTK
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
验证安装:
rtk --version # 应显示 v0.43.0 或更高版本
2. 接入 Hermes
rtk init --agent hermes
这条命令会:
- 创建插件目录
~/.hermes/plugins/rtk-rewrite/ - 生成插件配置文件
plugin.yaml - 更新
config.yaml,启用 RTK 重写
3. 重启 Hermes
退出当前会话,重新运行 hermes 即可生效。之后所有 terminal() 命令的输出都会自动通过 RTK 过滤压缩,Token 消耗预计减少 60-90%。
开源信息
- GitHub: https://github.com/rtk-ai/rtk
- 许可证: Apache 2.0
- 语言: Rust
- Stars: 68,000+
总结
RTK 是 AI 编码工具生态中一个极其实用的增效工具。它不改变命令的执行结果,只优化输出格式,让 LLM 在有限的上下文窗口中看到更多有效信息。对于高频使用 AI 编程助手的开发者来说,RTK 能在不牺牲准确性的前提下显著降低 Token 消耗,节约成本并提升响应质量。