RTK 节省 60% 的 Token。我让它节省了 90%。

发布: (2026年3月19日 GMT+8 20:07)
7 分钟阅读
原文: Dev.to

Source: Dev.to

RTK 是 Claude Code 生态系统中最好的工具之一——拥有 28 k GitHub 星标,在 git、test 和 ls 输出上可节省 60‑90 % 的 token,并且提供 34 个带有基于 TOML 的过滤器的命令模块。如果你使用 Claude Code 且尚未安装 RTK,赶快去安装吧。

RTK 的盲点

  • 不压缩错误堆栈跟踪。
  • 不处理 npm 安装警告。
  • Docker 构建日志原样通过。
  • ANSI 转义码(旋转指示器、进度条、颜色码)直接流入你的上下文窗口。

我 fork 了 RTK 并构建了 ContextZip 来填补这些空白。下面是直接对比。

RTK 的功能 与 ContextZip 的新增功能对比

类别RTKContextZip
git diff/log/status✅ (inherited)
ls/find/tree✅ (inherited)
Test output (Jest, pytest)✅ (inherited)
Cargo/Rustc output✅ (inherited)
Error stacktraces✅ — 5 种语言
ANSI/spinner cleanup✅ — 预处理器
npm/pip install noise✅ — 保持安全
Docker build logs✅ — 平均节省 88 %
Build error grouping✅ — 去重
Web page extraction✅ — 仅文章

ContextZip 继承了 RTK 的全部 34 个命令模块和 60 多个 TOML 过滤器,保持不变。RTK 所压缩的所有内容,ContextZip 也以相同方式压缩。新增的六个过滤器作用于 RTK 未修改的输出。

6个新过滤器

错误堆栈压缩

支持 Node.js、Python、Rust、Go 和 Java。去除框架/库的调用帧,仅保留你的代码帧和错误信息。例如:30 行的 Express 堆栈跟踪会压缩为 3 行。
节省率: Node.js 93%,Rust 80%,所有语言平均 58.7%。

ANSI 预处理器

在所有其他过滤器之前运行。去除转义码、光标移动序列、旋转指示字符(⠋⠙⠹⠸)、进度条和装饰性行,同时保留错误标记、时间戳和警告前缀。
节省率: 平均 82.5%。

包安装压缩

删除 npm warn deprecated 垃圾信息、pip 下载进度以及 Yarn 解析噪声。保留安装摘要、安全审计结果和任何漏洞警告。
节省率: npm 上 95%,且不丢失任何安全信息。

Docker 构建压缩

  • 成功: 将所有层哈希和拉取进度合并为一行摘要,显示阶段数量和持续时间。
  • 失败: 保留失败的步骤、错误输出及其上下文。
    节省率: 平均 88.2%,在大型多阶段构建中可达 97%。

构建错误分组

相同的错误(例如 TS2322: Type 'string' is not assignable to type 'number')会被分组;错误信息仅出现一次,并附带紧凑的 file:line 引用列表。
节省率: 平均 55.6%。

网页提取

contextzip web 获取页面并去除导航、页脚、侧栏、Cookie 横幅、广告和脚本标签。返回保留代码块和表格的主要内容——非常适合在不带周边界面的情况下将文档拉入上下文。

102‑测试基准:真实数字

类别案例数平均节省最佳最差
Docker 构建1088.2 %97 %77 %
ANSI/旋转指示器1582.5 %98 %41 %
错误堆栈跟踪2058.7 %97 %2 %
构建错误1555.6 %90 %-10 %
软件包安装1272.3 %95 %15 %
网页提取1068.4 %89 %34 %

加权总计: 102 案例,61.1 % 平均节省。

最差的情况是真实存在的:Rust 在短追踪时会出现 panic(节省 2 %),单个构建错误甚至会导致 -10 % 的净变化(格式化开销超过去除的噪声)。这些极端情况会触发阈值直通——如果压缩率低于 10 %,则原始输出会保持不变地直接输出。

结合 RTK 的继承过滤器,在典型的调试会话中,总体节省可达 70‑90 %。

安全保证

ContextZip 对噪声采取激进策略,但对信号保持保守。永不违反以下三条规则:

  1. 错误信息永不被删除。 实际的错误文本(TypeErrorENOENTpanic!、segfault)始终会通过。
  2. 安全警告永不被删除。 npm audit 漏洞、CVE 引用以及身份验证失败都会被保留。
  3. 测试失败细节永不被删除。 预期值与实际值、断言信息以及失败的测试名称都会通过。

如果过滤器无法自信地将某些内容归类为噪声,则会原样通过。

从 RTK 迁移

# 卸载 RTK(可选 — 它们不会冲突)
# 安装 ContextZip
curl -fsSL https://raw.githubusercontent.com/jee599/contextzip/main/install.sh | bash

安装脚本会自动设置 Claude Code 的 hook。重新启动 Claude Code 即可完成。如果你之前配置了 RTK 的 hook,ContextZip 会替换它——使用相同的 hook 机制、相同的二进制位置模式。

你的现有工作流保持不变。所有在 Claude Code 中运行的命令都会自动压缩。唯一可见的差别是:节省行现在显示为 contextzip 而不是 rtk,且在错误频发的会话中数值会更高。

0 浏览
Back to Blog

相关文章

阅读更多 »