Tracks
AIコーディングプランで、わずか数回のリクエストでトークン上限に達したことがあるなら、「いったいどこでこんなに使ったのか」と感じたはずです。
バグ修正、機能のリファクタリング、リポジトリの調査を頼んだだけで、コーディングの持ち分が一気に消えてしまうことがあります。
これは必ずしも、プロバイダーや契約の問題とは限りません。
AIコーディングエージェントは、通常のチャットボットに比べてはるかにトークン負荷が高いのです。プロンプトに答えるだけではなく、複数ファイルの読み取り、コードベースの検索、ログの検査、テストの実行、ツール呼び出し、コード生成、自身の変更のレビューを行い、タスク完了までにこのループを何度も繰り返します。
良いニュースは、こうした不要なトークン使用を大きく減らせることです。
コーディングエージェントの冗長さを抑え、単純な作業の過剰設計を防ぎ、ノイズの多いターミナル出力を圧縮し、大きなツール応答がコンテキストウィンドウを占領するのを防ぐツールがあります。
本ガイドでは、AIコーディングエージェントのトークン使用量を減らす4つのツール、Caveman、Ponytail、RTK、Context Modeを紹介します。
それぞれの役割、セットアップ方法、そしてClaude CodeやCodexといったサブスクリプションで上限に達する前により多くの作業をこなすための組み合わせ方を見ていきます。
なぜエージェント型ワークフローは大量のトークンを使うのか?
通常のチャットボットは、1つのプロンプトに1つの回答を返すことが多いですが、エージェントはもっと多くの処理を行います。
ファイル読み取り、ツール呼び出し、ログの検査、ドキュメントの取得、コードの記述を行い、完了前にこれらを何度も繰り返します。
各ステップでコンテキストに情報が追加され、その多くが後続の呼び出しでもモデルに再送されます。
簡略化したエージェントのループは次のようになります。

リクエストがモデルへ送られ、モデルがツールを呼び出し、ツールが出力を返し、その出力が次のステップの前にコンテキストへ折り返されます。コストの源泉はこのフィードバック矢印にあります。各パスが前の結果を持ち越すため、ツール呼び出しが6回必要なタスクでは、その履歴の大半を6回モデルへ送ることになります。
これにより、よくあるトークンの無駄が生まれます。
- 冗長な応答: もっと短い回答で十分なところで、説明しすぎる。
- 過剰設計のコード: 小さなタスクなのに、余分なファイルや抽象化、依存関係が増える。
- 巨大なツール出力: ログ、テスト、Gitのdiff、ターミナルコマンドの出力は数千トークンになることがある。
- 過剰なコンテキスト: 取得したドキュメント、ツール定義、過去の結果がコンテキストウィンドウをすぐ埋める。
- 長時間のセッション: 作業が長引くほど、履歴や中間結果をより多く抱え続ける。
つまり本当の課題は、エージェントがどれだけトークンを生成するかだけでなく、ワークフローの進行に伴ってどれだけトークンを読み、持ち越し、再処理するかでもあります。
まさにそこを、Caveman、Ponytail、RTK、Context Modeのようなツールが削減するよう設計されています。いずれも異なる無駄の原因を狙い撃ちします。
1. Caveman: エージェントの発話を減らす
Cavemanは、コーディングエージェントを簡潔にするシンプルな方法です。
逐一のナレーションや明白な事実の繰り返し、不要なつなぎ言葉を抑え、実際に重要な情報へと応答を寄せていきます。

特に長いコーディングセッションで有用です。冗長な応答は出力トークンを増やすだけではありません。
それらは会話履歴の一部になり、後続のターンにも持ち越されます。
Cavemanの仕組み
Cavemanは2つの独立した要素から成ります。
まずCaveman skillが、エージェントの文章スタイルを変えます。
不要なつなぎ、社交辞令、逃げの言い回し、無駄なナレーションを取り除き、コードブロック、コマンド、API名、正確なエラーメッセージなど重要事項はそのままにします。
また、セキュリティ警告や取り消せない操作のように明確さが重要な場面では、簡潔さを緩めます。
さらに任意でローカルプロキシがあり、エージェントが「読む側」の問題にも取り組みます。
コーディングエージェントとモデルプロバイダーの間に入り、送信前に適格なコンテキストを圧縮します。
スキルとプロキシは独立動作するため、まずは軽量なスキルから始め、より積極的なコンテキスト削減が必要になったらプロキシを追加できます。
考え方は下図のとおりです。

左では、エージェントがコードの前に前置きを付け、後から同じコードを再度説明しています。右では、有用な回答とコードだけ。やる作業は同じでも、ナレーションに費やすトークンは大幅に少なくなります。
Cavemanの始め方
スキルの最も簡単な導入方法は次のとおりです。
npx skills add JuliusBrussee/caveman
その後、コーディングエージェント内で有効化します。
/caveman

通常の応答に戻すには次を使います。
/caveman off
Cavemanは、Claude Code、Codex、Gemini CLI、Cursor、OpenCodeなどのツール向けにネイティブな導入方法も提供しています。
モデルへ送るコンテキストも減らしたい場合は、CLIをインストールします。
npm install -g @caveman-ai/cli
caveman setup --install
次に、対応エージェントを経由起動します。例:
caveman claude
これでCavemanのローカルプロキシが起動し、エージェントはコンテキスト圧縮レイヤーを経由します。
多くのユーザーには、まずスキルからの導入をおすすめします。
簡単に追加でき、通常のコーディングフローを変えず、「必要以上にしゃべる」という最も単純な無駄の源を直接抑えます。
2. Ponytail: エージェントの過剰設計を止める
Ponytailは、別の種類の無駄、すなわちタスクに必要以上のコードを書いてしまうコーディングエージェントに対処します。

単純なリクエストが、新たな依存、ヘルパークラス、ラッパーコンポーネント、余計な設定へと膨らむことがあります。
Ponytailは、まず最小限で妥当な解決策へエージェントを誘導して、それを防ぎます。
Ponytailの仕組み
コードを書く前に、Ponytailはエージェントに簡単な意思決定ラダーを踏ませます。

各段で、何か新しく書く前に立ち止まるチャンスを与えます。標準ライブラリ、ネイティブ機能、既存依存がすべて不適と判断された場合にのみ、最小限のコードを書く最下段へ到達します。
例えば、日付ピッカーのライブラリを導入してラッパーを書かずとも、ブラウザにはすでに次の要素があります。
<input type="date">
狙いは、やみくもにすべてを短くすることではありません。
Ponytailは、バリデーション、セキュリティ、アクセシビリティ、データ損失防止のような事項は縮減対象から明示的に外します。
つまり実装に対しては怠惰に、正しさに対しては無頓着にならないという設計です。
Ponytail自身のエージェント系ベンチマークでは、同じエージェントに比べてコード量を約54%削減、トークンを22%削減したと報告しています(12のコーディングタスクを対象)。
独立したベンチマークでも実装が大幅に小さくなることが示されましたが、積極的な設定では明示されていないエッジケースで堅牢性が損なわれることがある点にも触れています。
Ponytailの始め方
Claude Codeの場合、まずマーケットプレイスを追加します。
/plugin marketplace add DietrichGebert/ponytail
続いてPonytailをインストールします。
/plugin install ponytail@ponytail
これらは別々のコマンドとして送信してください。
インストール後、Ponytailの単純化の強さを次のコマンドで調整できます。
/ponytail lite
/ponytail full
/ponytail ultra
/ponytail off
fullはデフォルトで、最初の設定として最もおすすめです。liteは要求どおりに構築しつつ、より簡素な代替案を指摘します。ultraはYAGNIをより積極的に適用します。
既存の変更に不要な複雑さがないかレビューすることも可能です。
/ponytail-review
より大きなコードベースのスキャンもできます。
/ponytail-audit

Ponytailは、コーディングエージェントとの相性が特に良好です。不要なコードを減らすと、今の書き込みトークンが減るだけでなく、diffが小さくなり、後で自分で再読するコードも少なくなるという波及効果があるためです。
3. RTK: ノイズの多いツール出力を削る
RTK(Rust Token Killerの略)は、ターミナルからコーディングエージェントへ返ってくる出力という、別の無駄に焦点を当てます。

git statusのようなコマンド、テスト実行、ログ、検索、パッケージマネージャの出力は、数百から数千行に及ぶことがあります。
その多くはターミナルを見る人間には有益ですが、エージェントが必要なのは重要な部分だけであることが多いのです。
RTKはコマンドとエージェントの間に入り、モデルが見る前に出力を圧縮します。
RTKの仕組み
RTKは、コマンドごとのフィルタリング、グルーピング、切り詰め、重複排除を使ってノイズを取り除き、エラー、失敗、変更ファイル、サマリーといった有用情報を残します。
例えば次のようになります。

通常フローでは、エージェントがpytestを実行し、出力された全行を読みます。その多くは、見る必要のないパスしたテストです。間にRTKを挟むと、同じ実行結果は失敗とサマリーに絞られ、数百行ではなく数十行だけを読むことになります。
対応コーディングエージェントでは、RTKがシェル呼び出しへ自動フックできます。例えば次のようなコマンドが
git status
裏側で次のように書き換えられます。
rtk git status
これにより、毎回明示的にRTKを要求しなくても、小さくなった出力をエージェントが受け取れます。
RTKは一般的な開発コマンドで、コマンド出力のトークン使用を60~90%削減できると報告しています。これは合計のLLMコストが60~90%下がるという意味ではなく、RTKが圧縮するターミナル出力に限った数字です。
RTKの始め方
macOSやLinuxでは、Homebrewでインストールできます。
brew install rtk-ai/tap/rtk
またはインストールスクリプトを使用します。
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/master/install.sh | sh
正しいRTKが入ったか確認します。
rtk --versionrtk gain
rtk gainコマンドはトークン節約のダッシュボードを表示します。同名の別プロジェクトがあるため、この確認は有用です。
Claude Code向けには、次でグローバル初期化します。
rtk init -g
Codexの場合:
rtk init -g --codex
Gemini CLIの場合:
rtk init -g --gemini
RTKはCursor、OpenCode、Copilot、Cline、Windsurfなど複数のコーディングエージェントにも対応しています。

設定後は、通常どおりのターミナルコマンドを使い続けられます。
RTKは裏側で圧縮を処理するため、テスト実行、コード検索、Git変更の確認、ログの読み取りに多くの時間を費やすエージェントで特に有効です。
4. Context Mode: 大きなツール出力をコンテキストに残さない
Context Modeは、エージェントがツールを使い始めたその後に起きることに着目します。

ブラウザのスナップショット、GitHubの課題一覧、ファイル検索、大きなコマンド出力は、コンテキストウィンドウに膨大な情報を直接流し込みます。
さらに悪いことに、その情報が後続のターンでも持ち越されます。
Context Modeは、大きな生データをアクティブなLLMコンテキストの外に保ち、エージェントが実際に必要とする部分だけを戻すことで、これを回避します。
Context Modeの仕組み
Context ModeはMCPサーバーとして動作し、通常は大きな出力を生む操作をサンドボックス化したツールとして提供します。

生情報はローカルのFTS5対応検索インデックスに保存でき、会話全体を再投入せずに後から再検索できます。
プロジェクト例では、315 KBの生ツール出力が5.4 KBのコンテキストへ縮小され、98%の削減と報告されています。
これはプロジェクト自身のワークロードにおける一例であり、あらゆるツール呼び出しで保証されるものではありません。
Context Modeの始め方
Claude Codeなら、プラグインマーケットプレイス経由が最も簡単です。
/plugin marketplace add mksglu/context-mode
/plugin install context-mode@context-mode
Claude Codeを再起動し、次でセットアップを確認します。
/context-mode:ctx-doctor

ドクターは、プラグイン、フック、ランタイム、ローカル検索コンポーネントが正しく動作しているかをチェックします。
Context Modeをグローバルにインストールすることも可能です。
npm install -g context-mode
そしてCursor、Gemini CLI、GitHub Copilot CLI、JetBrainsなどの対応クライアントにMCPサーバーとして登録します。
動作後は、統計ツールでどれだけコンテキストを節約できているか確認できます。
Context Modeは、長時間・ツール多用のエージェントで特に有効です。ブラウザ結果、ログ、ファイル読み取り、MCP応答、その他の中間データが、コンテキストウィンドウを埋め続けるのを防ぎます。
4つのトークン節約ツールの比較
これら4つのツールは、エージェントが書く内容から、コンテキストに抱えるツール出力の量まで、コーディングエージェントのワークフローの異なる部分を狙っています。
|
ツール |
主な課題 |
削減対象 |
最適な用途 |
プロジェクト報告の結果 |
|
Caveman |
冗長なエージェント応答 |
エージェント出力、およびオプションのプロキシで繰り返される入力コンテキスト |
話しすぎるコーディングエージェント |
スキルのベンチマークで出力トークンを最大65%削減 |
|
Ponytail |
過剰設計の解決策 |
不要なコードや抽象化、それに伴うエージェントの作業 |
必要以上のコードを生成するコーディングエージェント |
ベンチマークでコード量54%減、トークン22%減 |
|
RTK |
ノイズの多いターミナル出力 |
シェルコマンド、Git出力、テスト、ログ、検索 |
CLI中心のコーディングエージェントのワークフロー |
対応コマンドでコマンド出力トークンを60–90%削減 |
|
Context Mode |
コンテキストの汚染 |
アクティブなコンテキストに入る大きなMCP・ツール出力 |
長時間・ツール多用のコーディングエージェント |
315 KB → 5.4 KB(98%削減)の事例あり |
違いを捉える一番簡単な考え方は以下のとおりです。
- Cavemanはエージェントの「話す量」を減らす
- Ponytailは「作る量」を減らす
- RTKはターミナルの「返す量」を減らす
- Context Modeはツール結果が「コンテキストに残る量」を減らす
これらのツールは併用できる?
はい、ただし最初から全部を積み重ねるのはおすすめしません。
より良いアプローチは、まずPonytailから始めることです。
コーディングエージェントへの追加が簡単で、多くのワークフローでは不要なコード削減だけで十分な場合があります。私はZcode、Claude Code、Codexなどと併用しており、削減効果に満足しています。
さらに進めたい場合は、Ponytail + Cavemanを試してください。Ponytailは不要なコードを、Cavemanは不要な説明を減らすため、相性が良い組み合わせです。

それでもテスト、ログ、Git、ターミナルコマンドからトークン負荷の重い出力が多いなら、Ponytail + Caveman + RTKを試してみましょう。
RTKが合わない場合、特にMCPツールやブラウザツール、APIなどの大きなツール出力を多用するワークフローなら、代わりにPonytail + Caveman + Context Modeを検討してください。
万人に効く完璧な組み合わせはありません。
目標は、コーディングエージェントの性能を損なわずにトークン使用量を下げるセットアップを見つけることです。Ponytailだけで十分な人もいれば、2つや3つのツールを組み合わせたほうがうまくいく人もいます。
トークン使用量とコストを減らすその他の方法
必ずしも新しいツールは不要です。
Claude Codeには、コンテキストを小さく保ち、無駄な支出を抑えるのに役立つ機能がすでにいくつか備わっています。
不要なときはメモリを無効化する
Claude Codeは過去セッションからメモリを自動保存・再読み込みできます。短い、または独立したタスクでは、不要なコンテキストが追加される可能性があります。
次を実行:
/memory
そこから、自動メモリを無効化したり、もはや有用でない情報を削除したりできます。
長いセッションを圧縮する
セッションが長くなると、Claudeは会話履歴やファイル内容、ツール出力を抱えます。Claude Codeは自動で圧縮しますが、手動で早めにトリガーすることもできます。
/compact
重要事項を指定することもできます。
/compact keep the implementation plan and latest test results
タスクの一部を終え、同じセッションで続けたいときに特に有用です。
タスクが変わったら新しく始める
圧縮する価値がないこともあります。まったく別のタスクに移るなら、次を実行します。
/clear
無関係な作業を持ち越さず、空の会話コンテキストから再開できます。Anthropicも、長時間セッションを繰り返し圧縮するより新規開始が良い場合があると述べています。
使っていないMCPサーバーを無効化する
MCPツールもコンテキストを消費します。Claude Codeは既定でMCPツールの完全スキーマ読込を遅延しますが、未使用サーバーでもオーバーヘッドが生じることがあります。
接続サーバーを見直し、今は不要なものを無効化するには: /mcp を使用します。
また、セッションの各部分がどれだけスペースを消費しているかは、/contextで確認できます。
CLAUDE.mdを小さく保つ
CLAUDE.mdはClaudeのコンテキストに読み込まれるため、巨大なプロジェクトマニュアルにしないようにしましょう。
複数タスクに共通して本当に必要な指示(重要な規約、コマンド、プロジェクトルール)だけを残します。
/contextでメモリや指示ファイルの占有量を確認しましょう。特定フォルダにのみ関係する指示は、すべてをメインのCLAUDE.mdに入れるのではなく、Claude Codeのよりターゲット化されたルール機能を使えます。
単純なタスクには安価なモデルを使う
すべての編集に最も高価なモデルは不要でしょう。
Claude Codeのドキュメントでは、ほとんどのコーディング作業にはSonnetを使い、より難しいアーキテクチャや推論が重い作業にOpusを予約することを推奨しています。
モデルの切り替えは次で行えます。
/model
単純なサブエージェントタスクには、Haikuを使うよう構成することもできます。
最後に
これらのツールの優れている点は、一度セットアップすれば手間がほとんどかからないことです。
ツールによっては、毎回スラッシュコマンドを覚えたり、タスクごとに手動で有効化したりする必要もありません。
Ponytailは実装をシンプルに、Cavemanは応答を簡潔に、RTKはターミナル出力を圧縮し、Context Modeは大きなツール結果がアクティブなコンテキストを氾濫させないようにします。
設定が済めば、こうした最適化の多くは通常のコーディングワークフローの一部として行われます。
エージェントの実行サマリー、生成コード、ターミナル出力、コンテキスト統計などに効果が現れることが多いでしょう。
エージェントは同じ仕事をこなしていても、不要なコードやナレーションが減り、ツール出力が小さくなり、ステップ間で持ち越す情報も少なくなります。
そして、これらのツールは組み合わせることもできます。
ただし4つすべてを積み上げれば自動的に最小トークンになるわけではありません。狙う箇所がそれぞれ異なり、効果はエージェント、モデル、リポジトリ、タスクの種類に大きく依存します。
自身のコーディング環境で試してみることをおすすめします。まず1つ導入し、差分を測定し、それでも明らかな無駄があればもう1つ足しましょう。
1つで十分なケースもあれば、2つや3つの組み合わせで真価を発揮するセットアップもあります。
私自身は、Ponytailを多くのコーディングワークフローで使っています。セットアップが簡単で、コーディングエージェントがすぐ使い方を理解してくれるからです。
主にZ.aiのZcodeと併用しており、プロンプトの出し方を変えずに実装を焦点化してくれます。
最終的に、トークン使用量の削減とは、エージェントに有益な仕事をさせないことではありません。その仕事の周辺にある無駄を取り除くことです。
Caveman、Ponytail、RTK、Context Modeを単体およびさまざまな組み合わせで試し、自身のワークフローで何が変わるかを測定し、トークン使用量・コード品質・エージェント性能のバランスが最も良いセットアップを残してください。
AIエージェントの仕組みをもっと知るには、AI Agent Fundamentals スキルトラックの受講をおすすめします。
FAQs
プロンプトキャッシングとは何ですか?コーディングエージェントのトークンコストを下げられますか?
プロンプトキャッシングは(Claude、Sonnet、Gemini Proなどの)モデルに実装されたネイティブAPI機能で、システム指示、APIドキュメント、リポジトリ構造といった頻繁に使うコンテキストを一時的に保存します。エージェントのループの各ターンでコードベース全体を再処理する代わりに、モデルはキャッシュ済みコンテキストを再利用します。これにより入力トークンコストを最大90%まで削減でき、長時間の開発セッションで応答速度も大幅に向上します。
なぜ出力トークンは入力トークンより大幅に高いのですか?
LLMのAPI料金を見ると、出力トークンは入力トークンより通常3〜5倍高価です。入力コンテキストの読み取りは高い並列性があり計算コストが低いのに対し、出力生成は逐次的で、各トークンの生成ごとに完全なフォワードパスが必要になります。不要なコードや冗長な説明を止めるツールは、この非常に高価な出力生成を直接削減します。
固定サブスクリプションのトークン制限はAPI利用とどう違いますか?
固定価格のAIコーディングサブスクリプション(Cursor ProやGitHub Copilotなど)は、通常、月ごとに「高速」またはプレミアムモデルのリクエスト枠が付与されます。エージェント型ワークフローは、ファイルの読み取りやテスト実行のためにユーザーの1回のリクエストに対して10〜20回のエージェントリクエストを裏で発行することがあり、月間の上限を急速に使い切ってしまいます。API課金(Bring Your Own Key)はこのリクエスト上限がなく、純粋にトークン単位で課金されるため、予期せぬコスト暴走を防ぐうえでトークン削減ツールが不可欠になります。
ターミナルログやツールのコンテキストをフィルタリングすると、AIがバグを見逃すことはありますか?
適用が強すぎるとその可能性はあります。ターミナルのノイズを切り捨てたりツールのコンテキストを制限したりするツールは、ロスのある圧縮に依存します。エージェントが深くネストしたバグを調査している場合、強いフィルタリングが、根本原因の特定に必要な特定のスタックトレース行、隠れた依存関係の警告、静かな失敗コードを削ってしまうことがあります。これを緩和するには、パッケージマネージャのインストールのようにノイズが多いことが分かっている出力には強い圧縮を適用し、直接的なエラーデバッグでは生の出力を許可する、といった使い分けが有効です。