AI News HubLIVE
サイト内リライト3 分で読了

タスク品質を損なわずにAIコーディングのコスト効率を高める方法

GitHub Copilotチームは、単発のツール呼び出しではなく「完了したタスク」単位でコスト効率を最適化すべきだと説明。選択的なノイズ圧縮、不要な行番号の削除、回帰テスト付きのプロンプト圧縮、バックグラウンド完了結果の一括直接配信により、推論コストやトークン使用量が約1~5%減り、品質の実質的な低下は見られなかった。

ソースGitHub AI & ML著者: Erik Kristensen

AIコーディングエージェントでは、単発のツール呼び出しが使うトークン数ではなく、タスク全体をどう処理するかで効率を測るべきだ。GitHub Copilotチームは、必要な情報を欠いた短い出力が原因でモデルが出力を読み直したりコマンドを再実行したりすれば、タスク完了までのコストはむしろ増えると指摘する。改善はユーザーのリクエストから最終結果までを含む「完了したタスク」単位で評価する必要がある。

同チームはエージェント向けコーディングベンチマークでオフライン検証し、有望な変更をオンライン実験で確認する方針を取る。最初の例はシェル出力を短縮するRTKだ。ベンチマークでは省略した内容が重要だった場合にモデルが元の出力を再取得したりコマンドを再実行したりし、復元の追加ターンでトークンと時間が増えた。ツール呼び出しあたりのトークン削減は目的として不適切で、完全なタスクで測定する必要がある。

Copilotが実装したのは「ノイズだけを圧縮し、有用な情報を残す」選択的圧縮だ。インストール、ビルド、テスト、lint出力には繰り返しが多い一方、cat、git diff、git show、任意スクリプトの結果には必要な情報が含まれやすい。初期版はgit diffまで圧縮したが、エージェントが元出力を開き直す結果になり、そのフィルターは外された。最終的な方針は、ソース類似出力と任意コマンド出力は原状維持、grepなどの検索結果は内容を落とさず再構成、ビルド/テスト/進行状況出力は大きな節約になる場合のみ圧縮するというもの。圧縮時も完全な原文への復元経路を残しており、オフライン評価では成功率の統計的に有意な低下はなく、オンラインでも平均コストがわずかに減り品質低下はなかった。

無駄なフォーマットの削除も一つの改善だ。ファイル内容をモデルに渡すviewツールは各行に行番号を付けていたが、現在の編集ツールは周囲のコードと照合するため行番号を使わない。行番号を削除したところ、オフラインでモデル推論コストが約5%減り、オンラインでは1ユーザー1日あたりの平均推論コストが約3%減った。品質や満足度の指標に実質的な悪影響は見られず、コンテキストウィンドウを実際の作業に使えるようになる。

プロンプト圧縮には行動テストが欠かせない。Copilotのタスクツールは専用エージェントを並行起動するが、その指示はツール説明、スキーマ、エージェント定義、システム指示などに蓄積していた。メタプロンプティングループでCopilot自身にプロンプトを反復改善させると約半分に減ったが、最初のオンライン実験で「慎重に並行実行」という指示がハードなスケジューリング方針に書き換えられ、独立したカスタムエージェントが直列実行される回退が判明した。実験を停止し、回帰テストを追加したうえで、明示的な許可・禁止リストを「独立したエージェントは並列実行可能。副作用を考慮せよ」という一文に置き換えた。この出荷版は毎ターン約1,300トークン、セッション全体のプロンプトでは約1.8%、アクティブ1時間あたりの正規化コストでは約2.9%の削減につながり、品質低下は認識されなかった。

バックグラウンド作業の処理も改善された。従来は完了通知に結果が含まれず、エージェントが結果を取りに行く余分なターンが必要だった。現在は対象の完了通知をまとめ、既存のツール結果形式で直接配信する。以前はシェルコマンドとサブエージェントの完了処理に4回のモデル呼び出しが必要だったが、今は1回で両方を処理できる。この変更により、AI Creditsで測定される平均トークン関連使用量は約2.3%減った。

同じ変更でもワークフローによって結果は異なる。コードレビューで良かったファイルツールの指示はCopilot CLIではコストを増やしたため出荷されなかった。逆に行番号の削除と選択的圧縮はコードレビューの平均プロンプトトークンを約5%ずつ減らし、共有ファイルツール移行と合わせた別の改善でコードレビューコストは約20%削減された。重要なのは「ツール呼び出し」ではなく「完了したタスク」を最適化し、変更を実際のワークフローで測定することだ。