【要約】Better tools made Copilot code review worse. Here’s how we actually improved it. [GitHub_Blog] | Summary by TechDistill
> Source: GitHub_Blog
Execute Primary Source
// Problem
GitHubのエンジニアが、Copilot Code Reviewのインフラ共通化を試みた際に直面した問題である。開発効率向上のため、既存の専用ツールをCopilot CLIと共通のUnixライクなツールへ移行した。しかし、以下の課題が発生した。
- ・ベンチマークにおいて、レビューの平均コストが増大した。
- ・有用なコメントの検出数が減少した。
- ・エージェントが「リポジトリの探索」を始めてしまい、不要なコンテキストを大量に読み込んだ。
- ・原因は、ツールへの指示が汎用的なコーディングアシスタント向けであり、レビュー業務に適していなかったことである。
// Approach
開発チームは、ツールの仕様変更ではなく、エージェントの「思考プロセス」をレビュー業務に最適化するアプローチを採用した。レビュー業務の特性である「差分から最小限の根拠を探す」動きを指示文に組み込んだ。具体的な手法は以下の通りである。
- ・差分(diff)から具体的なレビューの疑問を形成するよう指示。
- ・grepやglobを用いて、まず対象を絞り込むプロセスを徹底。
- ・viewによるファイル閲覧は、対象のパスや行範囲が確定した後のみに限定。
- ・検索と読み込みを交互に行わず、バッチ処理で効率化。
- ・検索失敗時には、無謀な探索をせず、より単純な検索へ切り替えるよう誘導。
// Result
指示文の最適化により、Copilot Code Reviewの運用効率が大幅に向上した。レビューの品質を維持したまま、以下の成果を得た。
- ・平均レビューコストを約20%削減することに成功。
- ・エージェントの挙動が「広範な探索」から「証拠に基づいた絞り込み」へと変化。
- ・ツールそのものよりも、ツールを制御する「ワークフローの設計」が重要であることを実証した。
Senior Engineer Insight
> エージェント開発において、ツールは単なる実装詳細ではない。プロンプトは、ツールの使い方を規定する「APIドキュメント」と同等の役割を果たす。汎用ツールを導入する際は、タスク固有のワークフロー(今回の場合は差分からの絞り込み)を指示に組み込まなければ、トークン消費の増大と精度の低下を招く。スケーラビリティを求めるなら、ツールの共通化と、指示の個別最適化をセットで設計すべきだ。