RTK:用 CLI Proxy 降低 AI Agent 的 Token 消耗
RTK 是什麼
RTK 全名是 Rust Token Killer。
它不是 prompt 壓縮器,也不是把文字翻譯成另一種格式。
RTK 的實際定位是 CLI proxy。
AI Agent 執行開發指令時,RTK 會先接住輸出內容,移除雜訊、重複行、過長內容與低價值資訊,再把壓縮後的結果丟回 Agent context。
典型流程:
AI Agent
→ rtk git status
→ git status
→ RTK 壓縮輸出
→ 回傳給 AI Agent
目標很直接:減少 LLM token 消耗。
安裝
macOS 建議用 Homebrew:
brew install rtk
Linux 或 macOS 也可以用安裝腳本:
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
如果 rtk 不在 PATH,補上:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
也可以用 Cargo 從 GitHub 安裝:
cargo install --git https://github.com/rtk-ai/rtk
檢查安裝結果:
rtk --version
rtk gain
初始化 Agent 整合
RTK 支援多種 AI coding 工具。
Claude Code / GitHub Copilot:
rtk init -g
Gemini CLI:
rtk init -g --gemini
Codex:
rtk init -g --codex
Cursor:
rtk init -g --agent cursor
Windsurf:
rtk init --agent windsurf
Cline / Roo Code:
rtk init --agent cline
初始化後重啟 AI 工具。
之後 Agent 執行 shell 指令時,RTK 會自動介入。例如:
git status
會被改寫成:
rtk git status
基本使用
也可以手動呼叫 RTK。
檢查 Git 狀態:
rtk git status
看 Git diff:
rtk git diff
讀檔案:
rtk read src/main.rs
用 aggressive 模式讀檔,只保留更精簡的結構:
rtk read src/main.rs -l aggressive
搜尋程式碼:
rtk grep "pattern" .
看目錄:
rtk ls .
執行測試,只保留失敗重點:
rtk pytest
rtk cargo test
rtk npm test
看 Docker 狀態:
rtk docker ps
rtk docker logs <container>
監視 RTK 狀態
RTK 內建 token 節省統計。
查看總體節省量:
rtk gain
看圖表:
rtk gain --graph
看近期指令紀錄:
rtk gain --history
看每日統計:
rtk gain --daily
輸出 JSON,方便丟到 dashboard:
rtk gain --all --format json
找出還沒被 RTK 攔到的節省機會:
rtk discover
看最近 session 的 RTK 採用狀況:
rtk session
如何調整
RTK 最常調的不是模型參數,而是輸出精簡程度。
使用超精簡模式:
rtk -u git status
-u 會啟用 ultra-compact 輸出,適合 Agent 自己讀,不適合人類閱讀。
需要除錯時提高詳細程度:
rtk -v git status
rtk -vv git status
rtk -vvv git status
針對單一檔案讀取,可用 aggressive 模式:
rtk read src/main.rs -l aggressive
這種模式適合讓 Agent 快速掌握結構,不適合做逐行 code review。
注意事項
RTK 主要攔截 shell 指令。
如果 AI 工具使用內建的 Read、Grep、Glob 類工具,這些呼叫不一定會經過 RTK。
要讓 RTK 生效,盡量讓 Agent 使用 shell 指令:
rtk read file.rs
rtk grep "keyword" .
rtk find "*.rs" .
不要期待 RTK 解決所有 context 問題。
它解的是「開發指令輸出太吵」這一段。
實戰判斷
RTK 適合這些場景:
git statusgit diffgit loglstreegreprgpytestcargo testdocker logskubectl logs
這些指令原始輸出常常很肥,但 Agent 真正需要的只有錯誤重點、檔案變更、狀態摘要。
RTK 的價值就在這裡:
不是讓模型變聰明。
是不要餵模型吃垃圾輸出。
問題本質
AI coding 的 token 浪費,很多不是發生在 prompt。
而是發生在工具輸出。
一個 git diff、一段測試 log、一串 Docker log,就足以把 context 塞滿。
RTK 的做法是把 CLI 輸出先過濾再餵給 Agent。
工程上這比事後要求模型「請簡短回答」有效。
因為垃圾資料沒有進 context,模型就不需要浪費 token 理解垃圾資料。