Grepだけで十分か?エージェントサーチにおける検索戦略の分析

Grepはリテラル情報の復元においてベクトル検索を上回る

エージェントサーチシステムの比較研究において、特定の安定した証人(正確な日付、カウント、好みなど)を復元することを目的とする場合、grepによるリテラル文字列マッチングは一般的にベクトルベースの検索よりも高い精度をもたらす。この結果は、高い精度とリテラルマッチングが必要なタスクでは、従来のキーワード検索がセマンティックエンベディングよりも依然として効果的であることを示唆している。

エージェントハーネスとツール呼び出しの影響

検索戦略は重要だが、エージェントサーチシステムの全体的なパフォーマンスは、「ハーネス」―モデルがツールとどのようにやり取りし、結果がどのように提示されるかを管理するフレームワーク―に大きく依存する。この研究では、Chronosと呼ばれるカスタムハーネスや、Claude Code、Codex、Gemini CLIなどのプロバイダー固有のCLIハーネスを含むいくつかのハーネスを比較した。

Key findings regarding harnesses include:

  • ハーネスの影響: 使用するハーネスとツール呼び出しスタイルに基づいて、基礎となる会話データが同じでも、精度スコアは大きく変動する。
  • プログラミング向けに調整されたハーネス: プログラミングタスクに最適化されたハーネス(例えば Claude Code と Codex)は、grep を強く好み、それによって恩恵を受けることを示唆する証拠がある。
  • ニュートラルハーネス: 対照的に、ニュートラルハーネスではベクトル検索の方が良い結果を得られる可能性がある。

実験方法

この研究は、複数のセッションにわたる長い会話におけるエージェントの質問への回答能力をテストする LongMemEval ベンチマークを使用して、2 つの主要な実験を通じて行われた。

  1. 実験 1: Chronos、Claude Code、Codex、Gemini CLI などの異なるハーネスおよび異なるツール出力フォーマット(モデルによって別々に読み込まれるファイルベースの結果とインライン結果)間で、grep とベクトル検索を比較した。
  2. 実験 2: 無関係な会話履歴を段階的に追加し、気を散らす素材に対処するモデルの能力をテストしながら、grep のみ対ベクトルのみの検索を評価した。

批判的分析とコミュニティの視点

この研究をめぐる技術的な議論では、エージェントサーチにおける grep への依存に関するいくつかの制限点と実務上の考慮事項が指摘されている。

ベンチマークのバイアスとリテラリズム

批判者らは、結果が LongMemEval ベンチマークの選択によって歪められる可能性があると主張している。なぜなら、このベンチマークは「リテラル証人」(正確なテキストスパン)の復元に報酬を与えるため、grep を本質的にセマンティック検索よりも有利にするからである。

"自転車についての会話の後、'bike' が一般的なトークンヒットとなる bike(s) へのクエリ。しかし、ベートーヴェンのソナタについての会話の後、クラシック音楽についての質問では、埋め込みベースのアプローチが光を放つようなケースとは異なる。"

スケーラビリティとリソースコスト

grep は小規模から中規模のデータセットに対して高い精度を提供するが、トークン消費とレイテンシーの観点から大きなオーバーヘッドを引き起こす。

  • トークン消費: grep はしばしば周辺テキストの大きなチャンクをコンテキストウィンドウに引き込み、クエリごとのコストを増加させる。
  • スケーリングの限界: 一部の研究者は、コーパスが約100,000ファイルを超えると grep の有効性が崩れ始めると示唆しており、その時点では BM25 やベクトルデータベースなどのより堅牢な検索エンジンが必要になる。

ハイブリッドアプローチの主張

多くの実践者は、grep とベクトル検索の選択は誤った二分法であると主張している。効果的なエージェントワークフローは、しばしばツールの組み合わせから利益を得る。

  • ハイブリッド検索: 正規表現フィルタリングとセマンティックランキング(例えば、マルチベクトルエンベディングの使用)を組み合わせることで、リテラルマッチと概念マッチの両方を捉える。
  • ツールの自律性: ユーザーのリクエストの具体的な性質に基づいて、エージェントが grep、ハイブリッド検索、構造化データクエリ(グラフフレームワークや SQL など)の中から選択できるようにする。
  • セマンティックマッピング: Tree-Sitter、PageRank、または Language Server Protocols (LSP) などのツールを利用してコードベースのセマンティックマップを構築し、grep が捉えることができないコンテキストを提供する。

Sources