RTK (Rust Token Killer)
[!info] 知识库定位 这是一篇 工具评估 / 使用笔记,重点回答”它值不值得用、怎么用、什么时候不用”。 底层概念链接到
related_concepts;真实项目落地链接到used_in_projects。
高性能 CLI 代理——在 AI Agent 和 shell 之间拦截命令输出,压缩 token 消耗 60-90%,单一 Rust 二进制,<10ms 开销。
为什么需要它
AI 编码助手(Claude Code、Copilot、Cursor 等)在执行 git log、npm test、pytest 等命令时,返回的输出往往冗长且充满噪声——注释、空白行、重复日志、样板文件。这些内容直接进入 LLM 上下文,快速消耗 token 预算。RTK 作为透明中间层,自动过滤和压缩命令输出,让 Agent 用更少的 token 获得同等质量的信息。
核心优势
- 极低开销:单一 Rust 二进制,无外部依赖,命令执行延迟 <10ms
- 100+ 命令支持:覆盖 git、cargo、npm、pytest、go test、docker、kubectl、AWS CLI、GitHub CLI 等主流开发工具
- 14 个 AI 工具自动集成:Claude Code、Copilot、Cursor、Gemini CLI、Codex、Windsurf、Cline、Hermes 等,一键 hook 安装
- Tee 模式:失败时自动回退到完整输出,LLM 不会因压缩丢失调试信息
- Token 分析:
rtk gain、rtk discover、rtk session命令提供可视化的 token 节省统计
性能表现
| 场景 | 压缩前 | 压缩后 | 节省 |
|---|---|---|---|
| 30 分钟编码会话(综合) | ~118,000 tokens | ~23,900 tokens | ~80% |
| git 命令输出 | 高 | 显著减少 | 60-90% |
| 测试运行输出 | 高 | 显著减少 | 60-90% |
压缩策略:
- Smart Filtering — 移除噪声(注释、空白、样板)
- Grouping — 按目录/错误类型聚合相似项
- Truncation — 保留相关上下文,截断冗余
- Deduplication — 重复日志行合并计数
快速上手
安装
# Homebrew(macOS/Linux)
brew install rtk
# 快速安装脚本
curl -fsSL https://rtk-ai.app/install.sh | sh
# Cargo(从源码)
cargo install --git https://github.com/rtk-ai/rtk
# 预编译二进制:macOS (x86_64/aarch64)、Linux (x86_64/aarch64)、Windows (x86_64)
最小示例
# 安装后,为 Claude Code 自动配置 hooks
rtk install claude-code
# 之后正常使用,RTK 自动拦截并压缩命令输出
# 例如 Agent 执行 git status 时,实际运行 rtk git status
# 查看 token 节省统计
rtk gain
rtk session
配置要点
~/.config/rtk/config.toml:主配置文件,控制过滤规则、命令映射等- Tee 模式:失败时保留完整输出,确保调试信息不丢失
- 自动 rewrite hooks:安装后自动配置 AI 工具的 shell hook,无需手动修改
适用场景
适合:
- AI 编码助手的日常开发工作——大量 shell 命令输出是 token 消耗大户
- CI/CD 环境——测试、lint、构建输出通常极其冗长
- 多人协作——统一的 token 节省策略,降低团队 LLM 成本
- 追求极低延迟——Rust 实现,几乎无感知开销
不适合:
- 非 shell 命令的内容压缩(文件读取、RAG 结果、对话历史)——RTK 只处理命令输出
- 需要 ML 级别智能压缩的场景——RTK 基于规则,不是 ML 模型
- 不使用 AI 编码助手的场景——RTK 的价值完全在于减少 LLM token
已知坑 & 注意事项
- 仅限命令输出:RTK 不处理文件读取、API 调用、对话历史等非 shell 内容
- Windows 支持:最佳体验在 WSL 上,原生 Windows 支持可用但不如 Unix 环境完善
- 过滤规则可能过激:某些场景下过度过滤可能丢失有用信息,Tee 模式是安全网
竞品对比
| 维度 | RTK | Headroom | 手动截断 |
|---|---|---|---|
| 压缩范围 | 仅 shell 命令输出 | 全部上下文(工具输出、日志、文件、对话) | 手动选择 |
| 压缩方式 | 规则驱动(过滤/分组/截断/去重) | ML 模型 + AST 感知 + 规则 | 直接丢弃 |
| 性能开销 | <10ms | 中等(ML 推理) | 零 |
| 可逆性 | ✅ Tee 模式 | ✅ CCR 模式 | ❌ 丢失 |
| 安装复杂度 | 极简(单一二进制) | 中等(Python 包 + extras) | 无 |
| 语言 | Rust | Python / TypeScript | N/A |
选择建议:
- 命令输出是主要 token 消耗源 → RTK(专精、极速、零配置)
- 需要全面压缩所有类型的内容 → ../记忆与持久化/Headroom
- 两者叠加使用 → RTK 处理命令输出(第一层),Headroom 处理整体上下文(第二层),效果最佳
生态 & 社区
- 维护状态:活跃。v0.40.0,持续迭代
- 文档质量:好。官方网站 rtk-ai.app
- 社区活跃度:58.5k stars,社区庞大
- License:Apache 2.0,商用友好
引入评估
| 维度 | 评分(/5) | 备注 |
|---|---|---|
| 上手难度 | ⭐⭐⭐⭐⭐ | 单一命令安装,自动 hook 配置 |
| 文档完善度 | ⭐⭐⭐⭐ | 官方文档清晰,但高级配置示例偏少 |
| 社区活跃 | ⭐⭐⭐⭐⭐ | 58.5k stars,非常活跃 |
| 性能 | ⭐⭐⭐⭐⭐ | Rust 实现,<10ms 开销,几乎无感知 |
| 稳定性 | ⭐⭐⭐⭐ | 单一二进制,无外部依赖,稳定性好 |
| 综合 | ⭐⭐⭐⭐ | 命令输出压缩的最佳选择,极低开销,推荐搭配 Headroom 使用 |
结论:推荐 — 如果你的 AI 编码助手频繁执行 shell 命令,RTK 是最简单、最高效的 token 节省方案。单一 Rust 二进制、<10ms 开销、100+ 命令支持,几乎零成本接入。建议与 ../记忆与持久化/Headroom 搭配使用,分层压缩效果最佳。
推荐引入版本:rtk >= 0.40
相关链接
前置知识:Token 优化 · 上下文窗口 竞品/互补:../记忆与持久化/Headroom · ECC 使用场景:AI 编码助手 · Token 优化 · LLM 应用开发 对比笔记:../对比与选型/ECC vs Headroom vs RTK vs claude-mem 对比
个人备注
{留白,供后续补充实际使用心得}