grep検索がベクトル検索を上回る — arXiv論文で検証

data search analysis server AI

「コードベースをAIエージェントに検索させるとき、複雑なベクトル検索よりも単純なgrep検索の方が精度が高い」——そんな直感に反する結論を示したarXiv論文「Is Grep All You Need? How Agent Harnesses Reshape Agentic Search」(arXiv:2605.15184)が公開されました。116問のベンチマークでgrep検索とベクトル検索(意味的な近さでテキストを探す手法)を比較したところ、grepが一般に高い精度を示しました。さらに重要な発見として、同じデータを使っていても、エージェントハーネス(エージェントがツールを呼び出す仕組みの設計)の違いだけで全体スコアが大幅に変わることも明らかになっています。

背景と文脈

コーディングエージェントが普及した現在、エージェントにコードベースを検索させる場面は非常に多くなっています。ファイルを探す、関数の定義を見つける、依存関係をたどる——こうした操作をエージェントが自律的に行うためには、何らかの検索手法が必要です。

近年はベクトル検索(Embedding:テキストを数値ベクトルに変換して意味的な近さで検索する技術)を使うアプローチが主流になりつつありました。自然言語の質問でコードを意味的に検索できる点が評価され、多くのコーディングエージェントに採用されてきました。一方でgrep(Unixの正規表現マッチングツール。global regular expression print の略)は1973年に登場した古典的なツールで、パターンに完全一致するテキストを高速に探すことに特化しています。

両者を体系的に比較した先行研究は少なく、どちらが実際のエージェントタスクで有効かは実験的に検証されていませんでした。この研究はその空白を埋めるものです。

技術/ビジネス面

black laptop computer turned-on displaying source code on table

論文の実験は大きく2つに分かれています。

実験1:grep vs ベクトル検索の直接比較
116問のコードベース関連質問セットを使い、grepとベクトル検索を複数の条件下で比較しました。条件のバリエーションとして、インライン結果(検索結果をそのままモデルに渡す)とファイルベース結果(検索結果をファイルとして渡す)という2種類のツール呼び出し形式を用意し、さらにカスタムエージェント「Chronos」と複数のプロバイダーネイティブCLIで評価しました。結果として、grepが一般に高い精度を示しました。

実験2:ノイズ耐性の検証
grepとベクトル検索それぞれに、無関係な会話履歴(ノイズ)を段階的に追加していき、スコアの変化を測定しました。コンテキストウィンドウ(LLMが一度に処理できるテキストの範囲)が余分な情報で埋まっていく状況でのパフォーマンスを確認した実験です。

最も注目すべき発見は「同じデータでもハーネスとツール呼び出し形式によってスコアが大きく変わる」という点です。つまり、どの検索手法を使うかよりも、どういう形でエージェントにツールを渡すかの設計がパフォーマンスに与える影響が大きい可能性を示唆しています。検索戦略だけを最適化しても、ハーネス設計が悪ければ効果が出ない場合があります。

これからどうなるか

この研究が開発者に示す実践的な含意は二つあります。ひとつは「grepを過小評価するな」という点です。ベクトル検索の方が技術的に洗練されているように見えますが、コードベース検索という特定のタスクではgrepの方が精度が高いケースが多い。シンボルや識別子・関数名など、完全一致で見つかる情報が多いコード検索の特性がgrepに有利に働いていると考えられます。

もうひとつは「ハーネス設計の重要性」です。エージェントのパイプラインを設計するとき、検索エンジンの選択よりも「検索結果をどのような形でLLMに渡すか」を先に考える方が効果的な可能性があります。既存のコーディングエージェントのパフォーマンスを改善したい場合、ツール呼び出し形式の見直しが有効かもしれません。インライン結果とファイルベース結果のどちらが自分の用途に合うかを実験してみる価値があります。

今後はこの知見がClaude CodeやGitHub Copilot、Cursorなどの商用コーディングエージェントの設計に影響を与える可能性があります。LLMの性能向上だけでなく、エージェントアーキテクチャの設計論が研究テーマとして重要性を増す流れを象徴する論文です。

まとめ

arXiv論文「Is Grep All You Need?」は、AIエージェントのコードベース検索においてgrepがベクトル検索を上回ることを実験で示しました。同時に、検索手法そのものよりもエージェントハーネスの設計がスコアに大きく影響することも判明しています。シンプルな手法の再評価とアーキテクチャ設計への注目を促す研究です。

参考リンク

アイキャッチ画像: Photo by Team Nocoloco on Unsplash

タイトルとURLをコピーしました