AI・機械学習
RTKはトークン削減を報告するが、当社のコストベンチマークは同意しない
RTK reports token savings, but our cost benchmarks disagree (quesma.com)
要約
AIコーディングを安価にするツールとして注目されるRTK(Rust Token Killer)は、AIエージェントが読み取るターミナル出力をフィルタリング・圧縮することでトークン数を削減すると主張している。しかし、JetBrainsのSkillsBenchを用いたベンチマークテストでは、RTKの使用によってコストが削減されるどころか、場合によっては増加することが判明した。RTKの「トークン削減」は、実際の請求額削減とは異なり、タスクの失敗率上昇や追加のターン発生を招く可能性があり、汎用的なコスト削減ツールとしては推奨されない。
全文翻訳
RTK(Rust Token Killer)は、AIエージェントが読み取る前にターミナル出力をフィルタリング・圧縮します。現在79,000以上のGitHubスターを持つRTKは、AIコーディングを安価にするための最も人気のあるツールの1つです。RTKがClaude Codeのトークンを最大60%削減できるというXの投稿は313Kビューに達しました。しかし、JetBrainsのSkillsBenchの実行では、削減効果は見られませんでした。READMEには免責事項があります。「RTKは、エージェントが読み取るbash出力の最大90%を削減します。[...]それは、請求額を90%削減することと同じではありません。」したがって、「ターミナル出力の削減」は「AIコーディングのコスト削減」と同じではありません。それは役立つことも、何もしないことも、あるいは(より多くのターンや低い品質で)逆効果になることもあります。この記事では、数日間と1,500ドル以上のトークン消費を経て得られた調査結果を発表します。
RTKの仕組み
RTKは、エージェントがシェルツール(Claude CodeではBash、OpenCodeではbash)で実行するGit、テスト、パッケージ、ファイルコマンドを書き換えることができます。各書き換えは、同じ出力のより簡潔なバージョンを返します。例えば、RTKはファイル名、サイズ、パーミッション(644はrw-r--r--を意味する)を保持しますが、所有者と日付は削除します。
$ ls -la /app/warriors
-rw-r--r-- 1 root root 824 Sep 13 2025 g2-clear.red
-rw-r--r-- 1 root root 487 Sep 13 2025 paper.red
$ rtk ls -la warriors/
644 g2-clear.red 824B
644 paper.red 487B
Terminal-Bench 2.1でのRTKのテスト
RTKはターミナル出力を圧縮するため、重いターミナルインタラクションを伴うベンチマークであるTerminal-Bench 2.1でテストしました。新しい3.0や4.0ではなく2.1に留まったのは、エージェントは2.1のタスクのほとんどをパスしますが、3.0と4.0は依然として困難だからです。コストはパスしたタスクにのみ関係します。Claude CodeをFable 5.0で、OpenCodeをDeepSeek V4 Pro 0813でOpenRouter経由で実行しました。各タスクは、同じモデルルート、プラットフォーム、タスク固有のタイムアウトで、RTKなしで5回、RTKありで5回実行されました。Fableのセキュリティタスクのうち、拒否された4つを削除した後、最終的な比較は85のFableタスクと89のDeepSeekタスク、つまり1,740回の試行をカバーします。
最初のチャートは有望でした
RTKを使用すると、Fableではコストが5%減少し、DeepSeekでは5%増加しました。
ダウンロード(PNG)
Claude Code · Fable 5.0
ベースライン $596 (84% パス率)
RTK $546 (83% パス率)
OpenCode · DeepSeek V4 Pro 0813
ベースライン $26 (71% パス率)
RTK $31 (69% パス率)
パスした試行数
他の試行数
パス率
RTKを使用すると、パス率はFableで1%、DeepSeekで2%低下しました。どちらのパス率の差も小さいです。
すべての支出(失敗した試行を含む)をパス数で割ると、FableはRTKで3%安くなり、DeepSeekは7%高くなりました。
すべてのタスクを等しく重み付けするという別の方法があります。なぜなら、1つの高価なタスクが多くの安価なタスクを上回る可能性があるからです。各タスクのベースライン試行の平均とRTK試行の平均を比較し、それらの変化を平均しました。
ダウンロード(PNG)
RTKコスト変化 vs ベースライン
Claude Code · Fable 5.0
−5%
+1%
OpenCode · DeepSeek V4 Pro 0813
+5%
+17%
−5%
0%
+5%
+10%
+15%
+20%
+25%
+30%
Claude Code · Fable 5.0
−5%
+1%
OpenCode · DeepSeek V4 Pro 0813
+5%
+17%
−5%
0%
+10%
+20%
+30%
総請求額の変化
タスクあたりの平均変化
95%信頼区間
このタスクレベルの尺度では、Fableは1%高くなり、ゼロとの明確な差はありませんでした。DeepSeekのタスクコストは平均で17%増加しました。
失敗を考慮しても傾向は変わりません。DeepSeekの10回の試行すべてがパスした36のタスク全体で、増加は依然として18%でした。
1つのタスクがベンチマーク全体で差を生んだ
FableのRTKによる節約のほとんどは、1つのタスク、すなわちwinning-avg-corewarsから来ました。どちらの設定でもすべての試行がパスしましたが、RTKでは約半分のターンで完了しました。他のタスクでは、節約は1%未満でした。DeepSeekでは、同じタスクで逆の結果になりました。どちらの設定でもすべての試行がパスしましたが、RTKはより多くのターンを要し、コストが増加しました。そのタスクを除いても、RTKを使用した場合のコストは依然として高かったです。
rtk gain はコスト指標として無用
RTKは、rtk gain を、バイト単位の生のコマンド出力からフィルタリングされたコマンド出力を4で割ったものとして文書化しており、請求されるトークン数ではありません。445回のDeepSeek RTK試行全体で、RTKは3億4920万トークンが節約されたと報告し、89%削減されました。大量のトークン削減が、より安価なタスクを意味するわけではありませんでした。
ダウンロード(PNG)
rtk gain
タスクあたりの平均コスト変化
0%
large-scale-text-editing 57.3M −19%
crack-7z-hash 38.9M +28%
other 87 tasks 253.0M +18%
rtk gain
large-scale-text-editing 57.3M
crack-7z-hash 38.9M
Mother 87 tasks 253.0M
タスクあたりの平均コスト変化
0%
large-scale-text-editing −19%
crack-7z-hash +28%
other 87 tasks +18%
train-fasttext では、モデルは head -1 train.txt を2回要求しました。RTKは、それらの限定的な読み取りとファイル全体を比較して、それぞれ1億2050万トークンが節約されたと記録しました。それらの2回の呼び出しは、比較の節約カウンターの69%を占めましたが、要求されたコマンドがファイル全体を返すことはありませんでした。rtk gain を節約された金額として扱うことは、試行の残りが同じままであると仮定することです。RTKはエージェントの次のターンを変更する可能性があります。rtk gain はそれらのターンのコストを考慮していません。これがソーシャル投稿が間違っている点です。rtk gain は削除された出力をカウントし、節約された金額をカウントしません。そして、それはより高価な試行を最適化されているように見せかけることができます。
RTKのバグがあなたを襲う
あるDeepSeek git-multibranch試行がループに陥りました。エージェントは、rtk find 0.45.0 がサポートしていないフラグを持つ find を実行しました。プラグインはそれを rtk find に書き換えましたが、「Use find directly」というエラーで失敗しました。リトライするたびに再び書き換えられました。RTKは、私たちの実行後、0.46.0でこれを修正しました。
ダウンロード(PNG)
Agent
find → Plugin
rtk find → Error
Use find directly
339回の連続エラー
約12分
エージェントはタイムアウトするまでに339回の連続エラーを蓄積しました。タスクはパスしましたが、パスした対応するベースライン試行よりも約9倍のコストがかかりました。これは1つの外れ値試行でしたが、それなしでも傾向は続いています。
ターミナル出力は請求額の小さな部分
RTKなしでは、ツール出力はFableの入力トークンの約11%、DeepSeekの40%を占めていました。
ダウンロード(PNG)
RTKなしの入力
Fable 5.0
7%
4%
残りの入力
ターミナル 7%
他のツール 4%
DeepSeek V4 Pro 0813
26%
14%
残りの入力
ターミナル 26%
他のツール 14%
RTK試行では、Claude Codeのターミナル呼び出しの31%、OpenCodeのターミナル呼び出しの51%がRTKを使用していました。RTKはシェルコマンドのみを書き換えます。Claude CodeのフックはBashツールと一致し、OpenCodeのプラグインはbash呼び出しに作用します。両方のプラットフォームは、ファイル読み取りと検索を個別のRead、Grep、Globツールとして公開しており、これらはRTKをバイパスします。Claude CodeのBash呼び出しの約半分は、すでに head、tail、または wc を使用して出力を制限していました。エージェントコーディングでは、コンテキストはターンごとにキャッシュされるため、後でターミナル出力を読み取る場合、ほとんどがキャッシュ読み取りとして表示されます。これらはFableでは通常の入力トークンの1/10、DeepSeekでは1/30のコストがかかります。
ダウンロード(PNG)
RTKでのキャッシュ読み取り
Fable 5.0
DeepSeek V4 Pro 0813
入力トークンに占める割合
94%
98%
総請求額に占める割合
30%
26%
DeepSeekでは、RTKはターミナル出力文字を9%削減しましたが、プロンプトトークンは9%増加しました。キャッシュされていない入力は1%減少し、キャッシュされた入力は9%増加しました。モデル出力(推論を含む)は、RTK使用時でコストの56%、RTKなしで57%を占めました。
追加のターンが節約を消し去る
エージェントがより多くのターンを取ると、タスクコストは通常上昇しました。
ダウンロード(PNG)
Claude Code · Fable 5.0
ターン数(対数スケール)
2
25
5
510
1020
2050
50100
100
RTK
ベースライン
x = y
コスト(ドル、対数スケール)
0.1
0.10.2
0.20.5
0.51
12
25
5
510
1020
20
RTK
ベースライン
x = y
OpenCode · DeepSeek V4 Pro 0813
ターン数(対数スケール)
2
25
5
510
1020
2050
50100
100200
200
RTK
ベースライン
x = y
コスト(ドル、対数スケール)
0.01
0.010.02
0.020.05
0.050.1
0.10.2
0.20.5
0.51
1
RTK
ベースライン
x = y
DeepSeekのRTK試行は58タスクでより多くのターンを要し、そのうち44タスクはコストが増加しました。28タスクでターン数が減少し、そのうち23タスクはコストが減少しました。平均的なDeepSeekのターンはRTKで7%少ない入力でしたが、全体では18%多いターンが発生しました。より少ないターンでは、総入力が少なくなるわけではありませんでした。1回の追加エージェントターンは、圧縮によって節約された金額よりも高くつく可能性があります。それは別の形でのトークンインフレ問題と同じです。JetBrainsはSkillsBenchで同様のパターンを見ました。RTKは低負荷ではターンを追加し、高負荷ではコストを削減しませんでした。
RTKはAIコーディングを安価にしない
Terminal-Bench 2.1では、Fableの節約は1つのタスクに依存しており、タスク全体では持続しませんでした。RTKを汎用的なコスト削減ツールとして推奨しません。個々のトランスクリプトは、現在の最先端モデルがすでにターミナルを効率的に使用していることを示しています(Fableのコンテキストの約7%がターミナルでした。