惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Engineering at Meta
Engineering at Meta
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
博客园 - Franky
The GitHub Blog
The GitHub Blog
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
小众软件
小众软件
罗磊的独立博客
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
美团技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
C
Check Point Blog
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 司徒正美
D
Docker

博客园 - 人艰不拆_zmc

大模型到底能同时多少人用?一篇看懂并发、排队与容量估算 大模型为什么有快有慢?一篇看懂响应速度背后的关键因素 技术小白也能看懂:大模型里的量化、蒸馏到底是什么意思? Codex 使用技巧:从“会聊天”到“真正能干活” 我终于搞懂了:Codex 对话中插件和 Skill 到底怎么用 我终于搞懂了 Agent Spec:它其实就是 Agent 的“标准设计图” 我终于搞懂了 Tool:原来不只是 Function Calling 里的函数 Skill 里的 Python 脚本,到底是不是 Tool? 我终于搞懂了 Codex 的 Plugin 和 Skill:顺便把 App、MCP 一次理清 我终于搞懂了 Codex 的“应用”:App 到底是什么,怎么添加和维护? 我终于搞懂了 Tool、Function Calling 和 MCP:大模型到底怎么知道该调哪个接口? 我终于搞懂了 MCP:从 HTTP API 到 ERP MCP Server 的完整入门 我终于搞懂了 Codex 的“记忆”是怎么回事 Codex 用久了越来越慢?我的上下文管理小技巧 我终于搞懂了 Codex 里的 Thread、Turn 和 Session 从 Qwen3.8-27B 到 FP8、NVFP4、MoE:一次搞懂几个常见大模型概念 FPS 是什么意思?简单理解 60 FPS、25 FPS 和视频帧率 DeepSeek Harness 明明像 AI Coding 工具,为什么又能用来构建各种 Agent? 使用 Codex 开发项目,怎么才能节约 Token? 模型里的 32K、128K、256K 是什么意思?简单聊聊上下文限制 Codex 一次对话到底会给模型发送什么?以 Spring Boot 项目为例讲清 Context、代码读取与 Token 消耗 AI Agent 中的 Rule 是什么?以 Codex 为例,小白也能看懂 我终于搞懂了 Harness:它不是论文,也不是标准,更不是 Codex 独有 小白也能看懂:RTSP 到底是什么? Remotion 是什么? 什么是 NLP?和大语言模型有什么区别?小白也能看懂 小白也能看懂:Codex Skill 是什么?怎么安装?为什么 Codex 能自己反复执行直到成功? 一个新版本发布后,测试人员到底应该先测什么? 什么是 AI 原生架构?不是简单加一个聊天机器人 CRM 是什么?一篇文章给小白讲明白
Codex Token 消耗太快?使用 RTK 压缩终端输出,减少无效 Token
人艰不拆_zmc · 2026-08-12 · via 博客园 - 人艰不拆_zmc

最近在使用 Codex、Claude Code 这类 AI 编程工具时,发现一个比较明显的问题:

AI 在执行 Git、Docker、测试、日志查询等命令时,经常会产生大量终端输出,而这些输出最终也会进入模型上下文,占用大量 Token。

例如:

git status
git diff
pytest
docker logs xxx
kubectl get pods

这些命令产生的内容里,很多其实都是重复信息或者对 AI 没有太大价值的信息。

RTK(Rust Token Killer)就是专门解决这个问题的。


一、RTK 是什么?

RTK 全称:

Rust Token Killer

它是一个使用 Rust 开发的命令行工具,可以理解为:

在 AI 编程工具和 Shell 命令之间增加一个“过滤器”,把大量无意义的终端输出压缩以后,再交给大模型。

正常情况下:

Codex
  ↓
执行 git status
  ↓
Shell
  ↓
返回完整输出
  ↓
Codex

使用 RTK 后:

Codex
  ↓
执行命令
  ↓
RTK
  ↓
执行真正的 Shell 命令
  ↓
过滤、合并、去重
  ↓
将精简后的内容返回 Codex

所以 RTK 并不是去压缩我们的 Prompt,也不是去修改大模型,而是:

压缩 AI 执行命令后产生的终端输出。

RTK 官方采用的主要处理方式包括:

  • 智能过滤无效信息

  • 将相似内容进行分组

  • 截断过长内容

  • 合并重复日志

官方说明,在一些高输出 Shell 命令中,可以减少最高约 90% 的 Bash 输出。

需要注意,这里的 90% 指的是:

终端输出减少

并不代表:

API 费用直接降低 90%

因为一次 Codex 对话消耗的 Token 还包括 System Prompt、用户 Prompt、代码上下文、历史对话以及模型回复等内容。


二、举个简单例子

例如运行测试:

pytest

假设有 1000 个测试用例:

test_001 PASSED
test_002 PASSED
test_003 PASSED
test_004 PASSED
......
test_999 PASSED
test_1000 FAILED

如果这些内容全部交给 Codex,大量 Token 都浪费在了:

PASSED
PASSED
PASSED
PASSED

这些重复信息上。

使用 RTK:

rtk pytest

RTK 会尽可能把成功测试进行折叠,把真正有价值的失败信息保留下来。

最终 AI 更关心的是:

999 passed
1 failed

失败用例:
test_1000

错误原因:
AssertionError ...

这样既能让 AI 知道测试结果,又不需要读取几百甚至几千行重复内容。


三、RTK 适合哪些场景?

RTK 比较适合 AI Coding 场景,尤其是经常使用:

Codex
Claude Code
Cursor
Gemini CLI
GitHub Copilot

等工具进行自动开发时。

比较典型的高 Token 消耗命令包括:

git status
git diff
git log

grep
rg
find

npm test
pytest
cargo test
go test

docker ps
docker logs

kubectl get pods
kubectl logs

这些命令有一个共同特点:

输出内容可能非常多,但 AI 真正需要的信息其实并没有那么多。


四、Mac 安装 RTK

我这里使用的是 macOS。

1. Homebrew 安装

推荐直接使用 Homebrew:

brew install rtk

安装完成后检查版本:

rtk --version

然后执行:

rtk gain

如果能够正常显示 Token Savings 统计信息,说明安装成功。


五、另外一种安装方式

如果不想使用 Homebrew,也可以执行官方安装脚本:

curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

默认会安装到:

~/.local/bin

如果安装以后执行:

rtk --version

提示:

command not found

可以把目录加入 PATH。

Mac 默认一般使用 zsh:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

然后执行:

source ~/.zshrc

再次检查:

rtk --version

六、注意 RTK 重名问题

这里有一个需要特别注意的问题。

目前存在另外一个同样叫 rtk 的项目:

Rust Type Kit

它和本文介绍的:

Rust Token Killer

不是一个东西。

安装完成后最好执行:

rtk gain

如果能够显示 Token 节省统计信息,基本可以确认安装的是正确的 Rust Token Killer。

也可以查看安装位置:

which rtk

七、Mac 上给 Codex 配置 RTK

如果平时主要使用 OpenAI Codex,可以直接执行:

rtk init -g --codex

然后检查配置:

rtk init --show

完成后重新启动 Codex。

需要说明一下,RTK 对不同 AI 编程工具的集成方式并不完全相同。

例如 Claude Code 可以通过 PreToolUse Hook 自动拦截 Shell 命令。

而当前 Codex 的 RTK 集成主要通过:

AGENTS.md
+
RTK.md

告诉 Codex在适合的场景优先使用 RTK。

因此 Codex 配置命令是:

rtk init -g --codex

而不是普通 Claude Code 使用的:

rtk init -g

八、Mac + Codex 完整安装流程

如果只想快速使用,可以直接按照下面几步操作。

第一步:安装

brew install rtk

第二步:检查版本

rtk --version

第三步:确认安装的是 Rust Token Killer

rtk gain

第四步:配置 Codex

rtk init -g --codex

第五步:检查配置

rtk init --show

然后重新启动 Codex 即可。


九、不接入 Codex,也可以手动使用

RTK 本身就是一个 CLI 工具,所以也可以手动调用。

例如原来的:

git status

改成:

rtk git status

查看 Git 日志:

rtk git log -n 10

查看代码修改:

rtk git diff

搜索代码:

rtk grep "keyword" .

查找文件:

rtk find "*.py" .

读取文件:

rtk read app.py

查看 Docker:

rtk docker ps

查看容器日志:

rtk docker logs 容器名称

运行 Python 测试:

rtk pytest

简单来说就是:

原命令:

git status

↓

RTK:

rtk git status

RTK 负责执行真实命令,然后把输出精简后再返回。


十、怎么看 RTK 到底省了多少 Token?

RTK 自带统计功能。

直接执行:

rtk gain

可以看到 Token Savings 信息。

还可以按天查看:

rtk gain --daily

按周查看:

rtk gain --weekly

如果使用一段时间以后再执行 rtk gain,会比较直观地看到 RTK 一共处理了多少命令,以及减少了多少终端输出。

不过这里再次提醒:

RTK 的 Token 数量属于估算值。

官方目前并没有内置具体大模型的 tokenizer,而是根据输出大小估算 Token,因此这个数字更适合用于观察“压缩比例”,不要直接当成实际 API 账单金额。


十一、RTK 会不会把重要信息也过滤掉?

这是我刚开始了解 RTK 时比较关心的问题。

RTK 的目标并不是简单粗暴地删除内容,而是根据不同命令采用不同的处理策略。

例如:

git status

会重点保留文件状态。

git diff

会精简 Diff 中的冗余内容。

pytest

会重点保留失败测试。

docker ps

会重点保留容器的关键字段。

也就是说,RTK 是针对不同命令分别做优化,而不是统一把输出截取前 100 行。

不过任何“压缩”都意味着部分信息可能不会直接展示。

所以在定位非常复杂的问题时,如果感觉某些关键日志没有看到,最简单的方法就是:

临时直接执行原始命令,查看完整输出。

例如:

docker logs xxx

而不是:

rtk docker logs xxx

这样就可以进行完整排查。


十二、RTK 值不值得用?

如果只是偶尔使用 AI 聊天,其实没有必要安装 RTK。

但是如果经常使用:

Codex
Claude Code
Cursor

让 AI 自动:

查看项目
搜索代码
执行 Git
运行测试
编译项目
分析 Docker
查看日志
排查错误

RTK 还是比较有价值的。

因为 AI Coding Agent 一个比较容易被忽略的 Token 消耗来源,就是:

Shell 命令输出。

有时候我们只让 Codex 修改几个文件,但是它可能在后台连续执行:

git status
git diff
rg
find
pytest
npm test
docker logs

真正修改代码可能只用了很少的上下文,反而大量 Token 消耗在终端日志上。

RTK 的思路其实很简单:

不让 AI 少干活,而是让 AI 少看没有价值的信息。

对于长时间使用 Codex、Claude Code 进行项目开发的场景,这种方式既可以降低上下文占用,也可以减少无意义信息对模型判断的干扰。


总结

最后简单总结一下。

RTK(Rust Token Killer)并不是传统意义上的 Prompt 压缩工具。

它主要解决的是:

AI Coding Agent
        ↓
执行 Shell 命令
        ↓
产生大量终端输出
        ↓
占用模型上下文

RTK 在中间增加了一层智能过滤:

AI Coding Agent
        ↓
RTK
        ↓
Shell 命令
        ↓
原始输出
        ↓
过滤 / 分组 / 截断 / 去重
        ↓
精简输出
        ↓
返回给大模型

如果平时使用 Codex 比较多,在 Mac 上只需要:

brew install rtk

然后配置 Codex:

rtk init -g --codex

最后:

rtk gain

就可以逐步观察实际使用过程中减少了多少无效终端输出。

对于经常使用 AI 编程工具的人来说,RTK 算是一个比较轻量、值得尝试的 Token 优化工具。