MCP + RAG:なぜ私は複雑なRAGシステムの構築をやめたのか

私は4年もの間、複雑なRAGシステムの構築に費やしてきました。

チャンク分割戦略、埋め込みモデル、ベクトルデータベース、そしてリランカー(reranker)を駆使しました。1,800時間分のナレッジベースのためのシステムを構築したのです。そのたびに、完璧に近づいていると考えていました。

しかし、うまく機能することはありませんでした。

そんな時、Model Context Protocol (MCP) のサポートを導入しました。それがすべてを変えました。MCPは、ほとんどの人にとって、従来の複雑なRAGを時代遅れなものにします。

かつて私は、次のような問題に頭を悩ませていました:

  • セマンティック・チャンキングか再帰的チャンキングかの選択。
  • OpenAI、Cohere、あるいはNomicの埋め込みモデルの選択。
  • Pinecone、Weaviate、あるいはChromaの選択。
  • top-k 検索とリランキングの管理。

私のRAGシステムはコードが2,000行に達しました。見た目は立派でしたが、失敗に終わりました。AI自体がすでに賢いのに、私はデータを賢くしようと躍起になっていたのです。

私はMCPアプローチに切り替えました。わずか150行のコードでサーバーを構築したのです。

AIには2つのツールだけを与えました:

  • search_notes: 単純なテキストマッチングを使用してノートを検索する。
  • get_note_content: ノートの全文を返す。

チャンクも、複雑な埋め込みも、ベクトルデータベースもありません。

このシンプルなアプローチは、私の凝ったRAGシステムに対して10回中9回は勝利します。その理由は以下の通りです:

  1. AIがロジックを処理する。あらかじめ設定されたチャンカーよりも、AIの方が何が関連しているかを判断するのが得意です。
  2. 完全なコンテキスト。従来のRAGはノートを小さな断片に分割します。これにより、答えが失われることがよくあります。MCPを使えば、AIはノート全体を読み取ります。つまり、概念の全体像を把握できるのです。
  3. 予測可能性。テキスト検索はシンプルです。キーワードが存在すれば機能します。埋め込みのドリフト(embedding drift)や次元エラーを回避できます。

ただし、次のような場合は依然として従来のRAGを使用すべきです:

  • 10万件を超える大規模なドキュメントがある場合。
  • 低レイテンシで大規模な本番環境が必要な場合。

しかし、個人のナレッジベース、サイドプロジェクト、あるいは社内ツールであれば、それらは必要ありません。

MCPのメリット:

  • 保守が容易:2,000行ではなく150行。
  • 埋め込みコストがかからない:モデルが変わってもデータを再埋め込みする必要がありません。
  • 精度が向上:AIが完全なコンテキストを取得できます。
  • デバッグが容易:検索が失敗した理由を正確に特定できます。

オーバーエンジニアリングはやめましょう。大変な作業はAIに任せればいいのです。AIにデータへのアクセス権を与え、自由に読ませましょう。

出典: https://dev.to/kevinten10/mcp-rag-why-i-stopped-building-complex-rag-systems-after-mcp-changed-everything-4g86

オプションの学習コミュニティ: https://t.me/GyaanSetuAi