The AI / news

Microsoft、コーディングエージェントのコストを最大30.9%削減するプラグイン「TokenEconomizer」を発表

Microsoft、コーディングエージェントのコストを最大30.9%削減するプラグイン「TokenEconomizer」を発表
1 min de lecture

Microsoft Researchとカリフォルニア大学バークレー校(UC Berkeley)の研究者らは、プログラミングエージェントのコストを管理するためのオープンソースプラグイン「TokenEconomizer」を公開した。これは、同一のコードリポジトリにおける過去のセッションから学習し、後続のセッションでの無駄を削減する。公開された結果によると、5つのエージェント・モデル構成において、SWE-Benchタスクの平均コストを18.4%から30.9%削減した。

プログラミングエージェントは、開発タスクを自律的に実行し、言語モデルにテキストの連続ストリームを送信する。このテキストはトークン(課金単位)に分割される。エージェントの各ターンでは、システムプロンプト、読み込まれた各ツールのスキーマ、完全な履歴が再課金される。TokenEconomizerはエージェントの外部に配置され、エージェントをブラックボックスとして扱う:モデルの重みもエージェントのコードも変更しない。Python 3.10以降が動作するマシン上で、GPUや専用APIキーなしで、Claude Code、Codex、GitHub Copilot CLI、Piと連携する。

無駄の発生源

無駄を理解するため、研究者らはClaude CodeとOpus 4.8を用いて実行された、6つのリポジトリにまたがる60のSWE-Benchタスクを分析した。彼らは繰り返し発生する3つの無駄の源を特定した。1つ目は繰り返しの発見:過去5つのタスクが完了した後、ツール呼び出しの30%が既に行われたアクションを繰り返していた。2つ目は未使用ツール:各ターンで23のツールスキーマが読み込まれるが、そのうち16は一度も呼び出されず、3つのツールが全呼び出しの98%を占めていた。3つ目は失敗ループ:失敗した10回の実行は全タスクの17%を占めたが、総支出の32%を占めていた。

研究者らはまた、既存の3つのオープンソース戦略、RTK、Serena、AiderのRepoMapもテストした。いずれも全てのケースで低コストではなかった:3つ全てがDjangoではコストを削減したが、SymPyではコストを増加させた。

三つの仕組み

TokenEconomizerは、各リポジトリについて完了したタスクのトレースから構築された状態を保持し、各タスクの前に3つのポリシーを設定する。1つ目のポリシーはマイクロスキルで、観察結果を「使用すべきテストコマンド」のような1行の事実として要約する。事実は、同じファイルを変更しないタスクにおいて3回の確認が得られた後にのみプロンプトに含められ、矛盾は5回でカウントされ、誤った事実を素早く除去できる。

2つ目のポリシーはツールの剪定で、シェル、読み取り、書き込み、編集ツールは常に保持する。その他のツールは、3タスク連続で使用されない場合、またはLLM判定器が関連性がないと判断した場合に非表示になる。完全なカタログは5タスクごとに再評価のために復帰する。Claude Codeを使用したDjangoでは、タスク2の最初の呼び出しにおけるプロンプトトークン数が43,351から16,295に減少した。

3つ目は失敗ループへの介入である。コントローラーは、成功した実行長の90パーセンタイルの1.25倍に等しいターン数の予算を設定する。シンプルなルールが繰り返しの失敗を検知し、その後、LLM判定器が(信頼度0.7以上で)エージェントが行き詰まっているかどうかを判断する。行き詰まったエージェントは1回だけリダイレクトを受け、その後ループが再発した場合は停止される。

変動する結果

SWE-Benchにおいて、このプラグインはテストした30のリポジトリ・構成セル全てでコストを削減した。一方、RTKとRepoMapはそれぞれ12ケースと15ケースでコストを増加させた。最高の結果はClaude CodeとOpus 4.8を使用した30.9%の削減で、RTKと組み合わせると33.2%に改善した。1回目の試行での成功率を測るPass@1率は、5つの構成のうち4つで向上したが、Opus 4.8では1.0ポイント低下した。節約効果は特に時間の経過とともに顕著で、ほとんどのリポジトリは当初は高コストだったが、6番目のタスクまでには全てが低コストになった。

このプラグインはApache 2.0ライセンスの下で公開されている。学習データはローカル(~/.tokeneconomizerディレクトリ)に保存され、Claude CodeへのインストールはプロジェクトのGitHubリポジトリから行える。ツールの剪定とループ防止はデフォルトで有効だが、マイクロスキルはモデル呼び出しを追加するため、デフォルトでは無効になっている。