ARTICLE · 1234332
给 AI 编程助手"减负":RTK 怎么把 bash 输出省掉一半
AI 编程 Agent 每次请求的输入 token 里,bash 输出占大头。RTK(Rust Token Killer)在源头截流:命令输出到达 LLM 前先过滤压缩,实测本机接入后 766 次命令省下 48.7% 输入 token。这篇讲它是什么、怎么装、怎么接 pi/Claude Code、以及诚实的节省边界。
上一篇文章讲了 Agent 每次请求大模型时在拼一份 prompt——其中一类输入 token 来源是 bash 输出(你让它跑 git status、ls、pytest,结果几百到几千 token 原样进了上下文)。这篇文章讲一个专门在源头截流的工具:RTK(Rust Token Killer)。
先给真实数字:它接入我的 AI 助手(pi)后,累计处理 766 次命令,输入 token 从 279K 降到 143K,省了 48.7%。
RTK 是什么
一个高性能 CLI 代理:在命令输出到达 LLM 上下文之前,把它过滤和压缩。单个 Rust 二进制、零依赖、每次开销 <10ms。
它干的活,本质是四种策略的组合:
智能过滤:去掉注释、空白、样板代码 分组:相似项聚合(文件按目录、错误按类型) 截断:保留关键上下文,删除冗余 去重:重复的日志行合并成一行 + 计数
效果看这张对比就懂:
没有 rtk: Agent --git status--> shell --> git → ~2000 tokens 原样进上下文有 rtk: Agent --git status--> RTK --> git → ~200 tokens(过滤后)ls 变成带文件计数的树形格式,cat 只留签名和结构,git push 变成一行 ok main,pytest 只显示失败的用例。
怎么装、怎么接
macOS 直接:
brew install rtk接 Agent 只一步——给对应的 AI 工具装 hook:
rtk init --global # 默认 Claude Codertk init --global --agent pi # Pirtk init --global --agent hermes # Hermesrtk init --global --agent codex # CodexRTK 支持 20 个 agent(Claude Code / Codex / Cursor / Trae / Gemini CLI / OpenCode / Kimi / pi…)。能力覆盖按 agent 的 hook API 而异:pi 和 Hermes 是满配——命令改写、拦截、压缩工具输出、加上下文、会话启动全支持(只有"代理路由"不支持)。装完重启 agent 生效。
以 pi 为例,rtk init 做的事是往 ~/.pi/agent/extensions/ 写一个 rtk.ts 扩展——和你可能已经装过的图片生成扩展是同一个机制:Agent 每次要执行 shell 命令前,先经过它改写/过滤。
日常怎么用
装好后你基本什么都不用改——git status、ls、cargo test 这些命令照常打,RTK 自动在中间改写。想主动看效果:
rtk gain # 节省统计:命令数、token 节省、耗时rtk gain --graph # 30 天 ASCII 趋势图rtk discover # 找出还没被覆盖的节省机会也可以直接手动调用优化版命令:rtk ls、rtk git status、rtk pytest、rtk tsc、rtk docker ps……
诚实的边界
RTK 报的 -90% 是 bash 输出的削减比例,不等于账单 -90%:bash 输出只是输入 token 的来源之一(还有你的提示词、系统提示、对话历史),而输入 token 也只是账单的一部分(还有输出 token)。它的 token 数是按 字节数/4 估算的——百分比可靠,绝对值是近似值。
另外它只对走 shell 的工具生效:MCP 工具、内置工具的某些路径不经过它的 hook,那部分输出它管不着。接入初期 rtk gain 里可能看到少量"oversized"输出被 Agent 自己的长度上限截断(我们这边 766 条里排除了 25 条)。
收尾
省 token 的最高境界不是事后压缩上下文,而是那些噪音压根不进上下文——在源头截流,让模型把注意力花在你真正关心的输出上。别让模型把钱花在 git status 上。
(机制参考 RTK 仓库 README 与 docs/agent-coverage、savings-explained;实测数据来自本机 pi 接入后的 rtk gain 统计。)















































































