📌 项目:https://github.com/rtk-ai/rtk | 星数:84k | 语言:Rust | 协议:Apache-2.0 + BUSL-1.1 | 更新:2026-10-21
RTK(Rust Token Killer)是rtk-ai开源的Agent无关Token优化工具,84k颗星,Rust编写,Apache-2.0+BUSL-1.1协议。LLM API按Token收费,Agent工作流中大量Token被浪费——冗长的命令输出、重复的上下文、无关的系统信息。RTK的定位是"Agent和LLM之间的压缩代理":Agent产生的所有输入输出经过RTK管道,RTK做压缩(bash输出去掉ANSI码和冗余行)、路由(简单查询走便宜模型)、过滤(移除无关上下文),综合减少60-90%的Token消耗。关键设计是"Agent无关"——RTK不修改Agent代码,作为CLI代理插入Agent和LLM API之间。
Token优化和Agent工具方向,DSH低级操作工具包可参考DSH Ops指南,免费模型插件可看DSH免费模型插件指南,Claude Code学习插件可参考VibeWise学习插件指南。
可组合优化管道:RTK的核心是可组合的优化管道——输入经过多个stage处理,每个stage做一件事。压缩stage:bash输出去掉ANSI转义码、重复空行、冗余路径前缀,一个1000行的ls -la输出压缩到200行。路由stage:简单查询(如"这个函数叫什么")路由到便宜模型(GPT-4o-mini/DeepSeek),复杂推理路由到强模型(Claude/GPT-4),按任务复杂度分流降本。过滤stage:用嵌入相似度移除上下文中与当前查询无关的历史消息,保留关键信息。每个stage可独立配置开关和参数,管道用TOML配置文件定义。
Agent无关设计与兼容性:RTK作为CLI代理工作——Agent调LLM API时不直连,而是经过RTK。RTK支持OpenAI兼容API格式,任何使用OpenAI SDK的Agent(Claude Code、Cursor、Continue等)只需把API endpoint从api.openai.com改为localhost:RTK端口即可。RTK透明转发请求和响应,Agent感知不到中间有代理。Rust实现保证低延迟(管道处理<1ms),不成为瓶颈。还支持流式响应(SSE),压缩在流式传输中实时进行。
实战效果与成本分析:RTK官方测试显示,典型Claude Code会话(含文件读取、bash执行、代码生成)Token消耗减少60-75%,纯bash输出密集场景减少高达90%。以Claude API定价算,一个月$200的Token费用用RTK后可降到$50-80。压缩是有损的——RTK保留语义关键信息,移除的是格式冗余(ANSI码、重复行、长路径),对Agent决策影响小。路由功能需要配置模型映射规则(哪些查询走便宜模型),初期需要调参但长期收益大。
| ✅ 优势 | ❌ 劣势 |
|---|---|
| Agent无关不需改代码 | 有损压缩可能丢信息 |
| Rust实现低延迟<1ms | BUSL-1.1部分非OSI批准 |
| 压缩60-90%Token | 路由规则需调参 |
| 路由分流降本 | 增加一层代理复杂性 |
| 支持流式响应 |
RTK的压缩是有损但语义保留的——它移除的是格式冗余(ANSI转义码、重复空行、冗长路径前缀、进度条刷新行),保留命令执行结果的关键内容。例如ls -la的1000行输出中,RTK去掉文件权限的重复模式、用户组的长字符串、.目录的冗余行,保留文件名和大小。对Agent决策影响小,因为Agent通常只关注输出中的关键信息(如"文件存不存在"、"错误信息是什么")。但如果你的场景需要精确的原始输出(如日志审计),可以关闭压缩stage。
RTK用Apache-2.0(源码)+BUSL-1.1(商业使用)双协议。BUSL-1.1允许个人和小团队免费使用,但大型商业使用(年收入>2M美元)需要购买商业许可。这是"源码可用但非完全开源"的模式,类似MongoDB/Redis的SSPL策略。个人开发者和小公司不受影响,大企业用之前需确认许可条款。如果你需要完全开源的替代,可以考虑自己实现类似的压缩管道。
RTK作为本地代理运行后,在Claude Code的环境变量中把API endpoint改为RTK地址(如http://localhost:7878)。Claude Code发请求到RTK,RTK压缩+路由后转发到真实LLM API。配置文件定义管道stages(哪些开启、参数值)。启动后RTK提供dashboard查看实时压缩率、路由分布、成本节省。建议先用默认配置跑一周,观察压缩效果和Agent表现,再调参优化。