Skip to main content
Glama
MiemieYang-yang

Modular RAG MCP Server

Modular RAG MCP Server

プラグイン可能・可観測なモジュール型 RAG(検索拡張生成)サービスフレームワーク。MCP(Model Context Protocol)プロトコルを通じてツールインターフェースを外部に公開し、Copilot / Claude などの AI アシスタントから直接呼び出せるようにします。また、大規模言語モデル関連の学習・面接・就職活動向けに設計された実践プロジェクトであり、付随する教材リソースでもあります。


📖 目次


Related MCP server: mcp-rag-assistant

🏗️ プロジェクト概要

このプロジェクトとは

本プロジェクトは、RAG 面接で最もよく問われる中核的な要素——検索(Hybrid Search + Rerank)、マルチモーダル視覚処理(Image Captioning)、RAG 評価(Ragas + Custom)、生成(LLM Response)——と、現在注目を集めているアプリケーションプロトコル MCP(Model Context Protocol) を、完全に動作する一つのエンジニアリングプロジェクトとして結びつけたものです。

このプロジェクトの大きな特長は、自分のビジネスに非常に簡単に適応できることです。全工程がプラグイン可能なアーキテクチャのおかげで、既存のプロジェクトに素早く組み込むことができ、バックグラウンドやニーズに関わらず、自分に合った使い方を見つけられます。具体的な活用戦略については、後述の このプロジェクトが適している人 & 使い方 で詳しく説明します。

単なるプロジェクトではなく、一連の考え方

このプロジェクト自体よりも価値があるのは、その背後にある一連のエンジニアリング的思考法です:

  • DEV_SPEC(開発仕様書)を書いて開発を推進する方法

  • Skill を使って Spec に基づきコード作成を自動化する方法

  • Skill を使って自動テスト・パッケージング・環境設定を行う方法

  • プラグイン可能なアーキテクチャに基づいて拡張する方法(例:Agent への拡張)

この考え方を学べば、ゼロから新しいプロジェクトや拡張を自分で作れます。上記の各ステップの具体的なやり方や設計思想は、ノートに対応する動画解説があるので、併せて視聴することをお勧めします。

中核機能一覧

モジュール

機能

説明

Ingestion Pipeline

PDF → Markdown → Chunk → Transform → Embedding → Upsert

全工程のデータ取り込み。マルチモーダル画像説明(Image Captioning)に対応

Hybrid Search

Dense(ベクトル)+ Sparse(BM25)+ RRF Fusion + Rerank

粗いランキングでの再現 + 精密なランキングでの再ランキングという二段階検索アーキテクチャ

MCP Server

標準 MCP プロトコルで Tools を公開

query_knowledge_hub、list_collections、get_document_summary

Dashboard

Streamlit 6 ページ管理プラットフォーム

システム概要 / データ閲覧 / Ingestion 管理 / 取り込み追跡 / クエリ追跡 / 評価パネル

Evaluation

Ragas + Custom 評価体系

golden test set 回帰テストに対応。「感覚」に頼らないチューニングを実現

Observability

全工程ホワイトボックス化追跡

Ingestion と Query の 2 つのチェーンのすべての中間状態を透過的に可視化

Skill 駆動の全工程

作成からテスト・パッケージング・設定までワンクリック

auto-coder / qa-tester / package / setup などの Skill が完全な開発ライフサイクルをカバー(ノートで各 Skill の使い方と設計思想を解説。対応動画を参照)

技術的なハイライト

🔌 全工程プラグイン可能なアーキテクチャ:LLM / Embedding / Reranker / Splitter / VectorStore / Evaluator のすべての中核要素に抽象インターフェースを定義。「レゴブロック式」の差し替えが可能で、設定ファイルだけでバックエンドをワンクリックで切り替えられ、コード変更は一切不要。

🔍 ハイブリッド検索 + 再ランキング:BM25 スパース検索で固有名詞の完全一致を解決 + Dense Embedding で同義語の意味的マッチングを解決。RRF 融合後、オプションで Cross-Encoder / LLM Rerank による精密な再ランキングを行い、再現率と適合率のバランスを取ります。

🖼️ マルチモーダル画像処理:Image-to-Text 戦略を採用。Vision LLM で画像説明を自動生成し、Chunk に縫い込むことで、純テキストの RAG チェーンを再利用して「文字検索で画像を出す」を実現。

📡 MCP エコシステム統合:Model Context Protocol 標準に準拠。GitHub Copilot、Claude Desktop などの MCP Client に直接接続可能。フロントエンド開発ゼロ、一度開発すればどこでも使えます。

📊 可視化管理 + 自動評価:Streamlit Dashboard で完全なデータ管理とチェーン追跡機能を提供。Ragas などの評価フレームワークを統合し、データ駆動の反復フィードバックループを構築。

🧪 3 層テスト体系:Unit / Integration / E2E の階層テスト。独立モジュールのロジック、モジュール間の連携、完全なチェーン(MCP Client / Dashboard)をカバー。

🤖 Skill 駆動の全工程:auto-coder(自動コーディング)、qa-tester(自動テスト)、package(クリーンアップとパッケージング)、setup(ワンクリック設定)などの Agent Skill を内蔵。コード作成からテスト、パッケージング、デプロイまでの完全な開発ライフサイクルをカバーします。各 Skill の使い方と設計思想はノートのプロジェクト部分に解説動画があります。

📖 詳細なアーキテクチャ設計、モジュール説明、タスクスケジュールは DEV_SPEC.md を参照してください


📂 ブランチ説明

本プロジェクトは 3 つのブランチを提供しており、異なる利用シーンに対応しています。自分のニーズに合わせて選択してください:

main — 最もクリーンな完全なコード

  • 常に 1 つの commit のみ。プロジェクトの最新の完全なコードを含む

  • 対象者:

    • プロジェクトの完全な機能をすぐに体験したい方

    • 時間がなく、面接用のプロジェクトをすぐに手に入れて中間の開発プロセスをスキップしたい方

    • このプロジェクトをベースに直接二次拡張したい方

  • 使い方:クローン後、Setup Skill を直接実行するだけで体験できます

dev — 完全な開発記録を保持

  • コードは main と完全に同一だが、完全な commit 履歴を保持

  • ゼロから段階的に構築していく各ステップの過程を記録。多数の中間ノードを含む

  • 対象者:プロジェクトがどのようにゼロから構築されたかを知りたい方。commit 履歴を遡って開発の思考プロセスを追跡できます

clean-start — クリーンなスタート地点、ゼロから開始

  • エンジニアリングの骨格(Agent Skills + DEV_SPEC)のみを含み、すべてのタスク進捗はゼロ

  • 完全な Skill 設定を保持しており、Agent を使った開発支援が可能

  • 対象者:

    • 時間が十分にあり、ゼロから開発したい方(強く推奨)

    • 完全なワークフローを体験したい方:Spec を書く → タスクを分解 → コードを書く → テストを書く → 反復最適化

    • 自分の理解に基づいてアーキテクチャを再設計し、自分のアイデアで実装して、各モジュールを深く理解することも可能

    • 私たちが説明するすべての対応する考え方(Spec 駆動開発、テストファースト、プラグイン可能なアーキテクチャなど)を使ってプロジェクト全体を完成させる

  • 核心理念:プロジェクト全体のコード作成は AI に DEV_SPEC に基づいて自動で行わせるもので、自分でコードを書く必要はありません。AI は Skill を通じて Spec 内のタスク定義、アーキテクチャ設計、インターフェース仕様を読み取り、仕様に適合したコードを自動生成します。この考え方についてはノートの対応動画解説を参照してください:5.1 プロジェクト Skills の使い方:AI に Skill を使って DEV_SPEC に従ってコードを完成させる方法。


🚀 クイックスタート

1. プロジェクトのクローン

git clone <repo-url>
cd Modular-RAG-MCP-Server

2. ワンクリック設定(Setup Skill)

本プロジェクトには Setup Skill が用意されており、すべての環境設定をワンクリックで完了できます:Provider 選択 → API Key 設定 → 依存関係インストール → 設定ファイル生成 → Dashboard 起動。

VS Code でプロジェクトを開き、Copilot / Claude のダイアログに入力:

setup

Agent が自動的にすべての設定プロセスを案内します。

💡 Skill の使い方に慣れていない場合は、付属ノートの Setup Skill 使用解説動画をご覧ください。


🎯 このプロジェクトが適している人 & 使い方

皆さんのバックグラウンドは異なります——新卒採用もいれば中途採用もいます。基礎も異なります——AI プロジェクト経験がある方もいれば、方向転換の方もいます。そのため、このプロジェクトの活用戦略も異なるべきです。必ず柔軟に使い、機械的に当てはめないでください。

ただし、一つ共通する点があります:プロジェクト全体の背後にある考え方——Spec を書いてプロジェクトを素早く立ち上げる方法、Skill を使って AI に自動コーディングとテストをさせる方法——これらのエンジニアリング手法はあらゆるプロジェクトに適用でき、すべての人にとって学ぶ価値があります。

プロジェクト自体の異なるシーンでの活用戦略については、具体的な例をいくつか挙げ、自分の実体験に基づいて説明します——もし私自身だったら、異なる状況でこのプロジェクトをどう使うか——参考にしてください。

1. 純粋に RAG を学ぶ —— プロジェクトを RAG 全工程の学習教材として使う

このプロジェクト自体が完全な RAG システムであり、RAG 学習のための実践プロジェクトとして使えます。

私が最初に RAG を学んだときは、この本を読んでいました:『大模型RAG实战:RAG原理、应用与系统构建』(汪鹏、谷清水、卞龙鹏などの AI 分野の専門家による著書)。この本と合わせて RAG を学ぶことができます。本で扱われる典型的な要素——検索、生成、ベクトルデータベース、チャンク戦略、再ランキングなど——は、どの RAG 関連の本を読んでも中核的な内容は同じです。

このプロジェクトはこれらのステップを一つの流れにまとめたものです。そのため、汎用的な RAG 全工程プロジェクトとして全体のプロセスを学べます。この本と組み合わせてもいいですし、他の RAG の本とも組み合わせられると思います。なぜならプロセスは共通しているからです。RAG の面接も結局はこれらのプロセスの組み合わせ、原理、そして実際に直面する困難と最適化に過ぎません。

2. 時間が迫っている —— 面接用のプロジェクトがない

現在 AI 関連のプロジェクトがなく、面接用のプロジェクトが急ぎで必要な場合は:

  1. このプロジェクトを直接使用:main ブランチをクローンし、Setup Skill で起動

  2. Resume Writer Skill と組み合わせて自分の履歴書を書く(Skill があなたのバックグラウンドに基づいてカスタマイズしたプロジェクト説明を生成)

  3. プロジェクトの理解に努める:中核フローを動かし、私が後でまとめるこのプロジェクトの面接問題と合わせて、まず面接に行く

  4. 面接を進めながら理解を深め、プロジェクトを拡張する——面接自体が最高の学習の原動力

例えば今が 3 月で、夏季インターンを探している学生の場合、時間が迫っています——まず履歴書に書いて、面接しながら学び、時間があれば拡張する。面接が急でプロジェクトがないという差し迫った問題を解決します。考え方は:まず書く → 面接に行く → 面接フィードバックに基づいてプロジェクトを改善。

通常、夏季インターンは 3 月から 7 月までチャンスがあります。インターンを見つけ、大規模言語モデルのプロジェクト経験を得たら、それを足がかりに学習を続けます——7〜10 月の秋採用、さらには来年 3 月の春採用まで、継続的に積み上げる時間は十分にあります。今始めるのは少し遅いように見えますが、実は遅くありません。学習のペースを維持できれば、今から来年 3 月まで丸一年学べば、新卒で大規模言語モデル分野に合格することは間違いありません。鍵となるのは、あなた自身がこれだけ長期間の学習力を維持できるかどうかです。

3. 時間が比較的ある —— このプロジェクトを起点に拡張する

このプロジェクトを起点として、自分の発展方向に合わせて的を絞った拡張ができます。DEV_SPEC にも拡張方向が書かれていますが、ここでは一般的なものをいくつか挙げます:

  • Agent の知識を補いたい場合:自分で Agent 側を実装し、コンテキスト処理、Tool Calling、ReAct ロジックなどを行い、このプロジェクトを Agent のモジュールと能力として、Agent + RAG のプロジェクトにする

  • バックエンドエンジニアリング能力を示したい場合:バックエンドデプロイ能力を追加し、Dockerfile を書き、CI/CD パイプラインを構築し、モニタリングとログ収集を追加

  • RAG を深く掘り下げたい場合:Agentic RAG、Graph RAG などの高度な形態に拡張するか、検索戦略でより多くの最適化実験を行う

発展方向は人それぞれです——プロジェクト付属の Resume Writer Skill が履歴書を書くときに最初にあなたのバックグラウンドと状況を尋ねるのと同じです。大規模言語モデル応用開発エンジニア、RAG エンジニア、フルスタックエンジニアとしての自己定位、新卒か中途かで要求はすべて異なります(大規模言語モデルの異なる職種の紹介と技術スタックはノートの大規模言語モデル職種紹介部分を参照)。そのため、自分で的を絞った拡張が必要です。

強く推奨:どんなバックグラウンドでも、どう拡張するにせよ、自分の業務に合わせて履歴書を書く必要があるでしょう。だから少なくとも試してみてください——自分の分野のドキュメント(金融、法律、医療、または自分の業務ドキュメント)を入れて、検索効果を見てください。効果が悪ければ、調整と改善を行います。このプロセス自体が最高の学習であり、面接で最も説得力のある実戦経験です。

4. 時間が特に十分 —— ゼロから完全なワークフローを体験

時間が十分にあるなら、clean-start ブランチから始めることをお勧めします。さらに clean-start の上で DEV_SPEC を削除し、ドキュメント設計から始めて、少しずつ体験してください:

ドキュメント設計 → AI がコードを作成 → 改善と反復 → テスト → デプロイ

という全体プロセスの方法論です。DEV_SPEC の書き方、Skill の設計方法などは、ノートのプロジェクト部分の対応動画で解説されています。ドキュメントを再設計したり、改善したり、直接 Agent 方向のものを作って、全体のフローを完走することもできます。

こうすることでプロジェクトを開発する完全な考え方を学べます。この方法の最大の利点は下限が非常に低いことです——ほぼ誰でも設計でき、プロジェクト全体を完成させられます。考え方も学べ、プロセスも学べ、しかもプロジェクトを高度にカスタマイズできます。グループ内の多くの友人がすでにこの方法でやっています。

5. 既存プロジェクトへの統合 —— RAG 能力を既存プロジェクトに組み込む

これも実は良い戦略で、私自身もこの方法を使うかもしれません。自分の実体験を例に説明します:

以前仕事を探していたとき、すでに 2 つの Agent プロジェクトがありましたが、RAG フローは非常に粗いものでした。履歴書には「Agent プロジェクトで何をしたか、その中で RAG の知識に少し触れた」という書き方をしていました。面接では、面接官は多少なりとも RAG の内容を聞いてきます。それについて説明しましたが、以前のプロジェクトの RAG システムは非常に浅いものでした——基本的な Embedding ベクトルマッチングだけで、粗いランキングや再ランキングなどの戦略がなかったため——面接官が質問すると浅い答えしかできませんでした。

このプロジェクトを作った後、一つの処理方法は本プロジェクトの RAG 能力を以前の Agent プロジェクトに統合し、履歴書では独立したプロジェクトとしてではなく、Agent プロジェクトの一部として説明することです。例えば:

「……プロジェクトでは自社開発のモジュール型 RAG システムで知識検索を行い、BM25 + Dense Embedding のハイブリッド再現を採用し、RRF 融合ソートを経て、Cross-Encoder 再ランキングで Top-K の精度を向上。マルチモーダル文書処理(PDF 解析 + Image Captioning)に対応し、MCP プロトコルを通じて標準化されたツールインターフェースを公開し Agent から呼び出し可能。Ragas 評価フレームワークを統合し、Golden Test Set 回帰テストメカニズムを構築して、検索品質を継続的に最適化……」

こうすれば、元の Agent プロジェクトに RAG の深みが加わり、面接官が再度質問しても話せる内容があります。

6. プロダクトマネージャー —— そうです、PM もこのプロジェクトを使えます

大規模言語モデルのプロダクトマネージャー面接では、RAG 関連の知識を問われることが増えており、中には PM 自身が POC(Proof of Concept)を作ってから開発に渡すことを要求する企業もあります。このプロジェクトと背後にある方法論は、まさにそれを実現できます。

なぜ PM が使えるのか:

  1. 面接に必要:大規模言語モデルのプロダクト職では RAG の基本原理とフローが問われます。このプロジェクトを通じて RAG の全体プロセス——ドキュメント取り込み、チャンク分割、ベクトル化、検索、再ランキングから最終生成まで——を直感的に体験し、プロダクトレベルの理解を構築できます

  2. POC 能力:この方法でプロジェクト全体を構築できます——ドキュメント(DEV_SPEC)を書くか、既存のドキュメントを直接使い、Skill で AI にコードを生成させます。面接では自分の考えとプロダクト設計を話し、コードは AI が書いたものです。これは現在では完全に合理的です

  3. 技術詳細を気にする必要がない:プロダクトはコードの各行を気にする必要はありませんが、このフローを動かすことで、プロダクトレベルで痛点を考えられます——例えば、検索が不正確な場合の指標の定義方法、ユーザー体験でのフィードバックメカニズムの設計、データ品質が RAG 効果に与える影響など

具体的なやり方:

  • main ブランチをクローンし、Setup Skill で起動して、完全なフローを体験

  • 自分の業務分野のドキュメントを入れて、検索効果を見て、プロダクトレベルの最適化方向を考える

  • 面接ではプロダクトの考え方と設計思考を話し、技術実装部分は AI 支援で完了したと説明

💡 ノートには Vibe Coding 関連のチュートリアル(Tina Huang 先生の解説など)もあり、非技術バックグラウンドの方に非常に適しています。AI でプロトタイプを素早く構築できます。

「プロジェクトが浅い」ということについて

最後に独立した点を挙げます(これは上記のすべての状況に当てはまります):

すべてのプロジェクトの深い最適化は一足飛びにはできません。

転職組で、プロジェクトがすべて自作の場合、面接官にプロジェクトが浅いと思われることがあるでしょう。以前もこの点に触れましたが、恐れる必要はありません:

  1. プロジェクトの深さは入行の必要条件ではありません。 私は昨年 6 つのオファーを獲得しました。大手企業のオファーも含めてです。それでも、プロジェクトが浅いと言う面接官はいました。面接では他にも多くの要素が考慮されます——理論の基礎、アルゴリズム能力、バックグラウンドのマッチング、知識の広さなど。転職でプロジェクトが浅いから転職できないと思わないでください。

  2. プロジェクトは継続的に最適化され、深まっていきます。 面接官がプロジェクトが浅いと言ったら、そのフィードバックを聞けば、なぜ浅いと思ったのかが必ずわかります——例えば、データが十分に複雑でないと思われたら、複雑なデータを作ればいい。画像処理が簡単すぎると思われたら、マルチモーダル戦略を拡張すればいい。私自身も面接の過程でプロジェクトにどんどん要素を追加していきました:以前作った Agent プロジェクトには、面接が進むにつれて、デプロイ、トレーニング、リフレクションデータ、評価モジュールを追加しました——全体のプロセスは面接と並行して進みました。

面接時間を多めに確保し、面接しながら改善と深化を進めてください。 ここでまたプロジェクト全体の考え方に戻ります——これらの考え方を学べば、継続的に拡張でき、しかも拡張のハードルは非常に低いです。アイデアを考えて AI に書かせるだけですから、恐れる必要はありません。

実際のデータを一つ挙げます:このプロジェクトは立案から完成まで、仕事終わりの時間を使って約 2 ヶ月で作りました。その間、本業、自メディア運営、自メディアの他のコンテンツ制作も並行していました。だから、このプロジェクトを拡張なしで非常に深いプロジェクトとして完全に当てにしないでください。特に中途採用の方には。しかし逆に考えてみてください——2 ヶ月の仕事終わりの時間でこれだけ作れたのです。この方法を学べば、自分で拡張する速度はどれほど速いでしょうか?

方法はすべて揃っています。すべての方案、プロセス、記録は保存され、動画解説もあります。最終的には必ず自分自身で拡張し、反復し、自分に最も合ったプロジェクトに仕上げてください。


📝 履歴書の参考

⚠️ 強く推奨:プロジェクト内蔵の Resume Writer Skill を使って履歴書のプロジェクト経験を生成してください。以下の例を直接コピーしないでください。

履歴書のプロジェクト経験は必ず的を絞ったものであるべきです——自分の業務バックグラウンド、目標職種、技術の重点に合わせてカスタマイズ生成する必要があります。以下の例は Skill の出力効果と異なるシーンの書き方の参考を示すためのもので、直接そのまま使っても意味はありません。

Resume Writer Skill の使い方:VS Code で Copilot / Claude のダイアログに 写简历 または resume と入力すると、Skill がプロフィール収集を案内し、四段構成の履歴書を自動生成します。具体的な使い方と設計思想はノートの プロジェクト部分の動画解説を参照してください。

Resume Writer Skill の動作方式

Skill は 「ライティング原則 + プロジェクトのハイライト + ユーザープロフィール = カスタマイズ履歴書」 の三角モデルを採用し、フローは以下の通りです:

  1. プロフィール収集:Skill が目標職種(RAG Engineer / Backend / Agent など)、業務バックグラウンド、技術の重点、特別な要求を尋ねます

  2. ハイライトマッチング:職種の方向性に基づき、プロジェクトの 10 大技術ハイライトから最もマッチする 3〜5 つを選び、bullet points に書きます

  3. 四段構成生成:厳密に 背景 → 目標 → プロセス → 結果 の構造で出力。各 bullet は「動詞で始まる + 技術詳細 + 定量化された効果」

  4. 面接の追質問予測:面接官がしそうな追質問を 3〜5 件自動生成し、事前準備を支援

例一:新卒採用 · RAG Engineer 方向

以下は Skill が「新卒、RAG 方向、汎用フレームワークモード」に基づいて生成した出力例です:

スマート知識検索と Q&A システム | 2024.09 - 2025.02 | 単独設計・開発

背景:エンタープライズ知識ベースのシーンで文書が分散し、検索精度が不足し、AI アプリケーションがプライベート知識に接続しにくいという共通の痛点に対し、モジュール型 RAG 検索フレームワークを設計・実装。

目標:ハイブリッド検索 + MCP プロトコルに基づくスマート知識 Q&A システムを構築し、正確な意味的検索と AI Agent によるプライベート知識ベースの直接呼び出しを実現。文書 Q&A の正確率を 90% 以上に向上。

プロセス:

  • BM25 + Dense Embedding ハイブリッド再現アーキテクチャを設計。RRF 融合ソートで再現率と適合率のバランスを取り、Cross-Encoder 再ランキングで Top-10 ヒット率を約 25% 向上

  • 全工程 Ingestion Pipeline(PDF 解析 → Markdown → 意味的チャンク分割 → Metadata 拡張 → Embedding → Upsert)を構築。Vision LLM を統合し、画像の自動説明を生成して Chunk に縫い込み、純テキストチェーンを再利用して「文字検索で画像を出す」を実現

  • LLM / Embedding / Reranker / VectorStore の全工程プラグイン可能アーキテクチャを実装。統一抽象インターフェースを定義し、設定ファイルでバックエンド Provider をワンクリック切り替え。4+ の LLM Provider をコード変更なしで切り替え可能

  • Ragas + Custom の二重評価体系を統合。Golden Test Set 回帰テストメカニズムを構築し、Faithfulness / Relevancy / Recall などの次元をカバー。「感覚」に頼らないチューニングを実現

  • Skill 駆動の全工程開発を採用。auto-coder / qa-tester / setup / package などの 5 大 Agent Skill でコーディング、テスト、設定、パッケージングの完全なライフサイクルをカバー。2 ヶ月の余暇時間で 68 のサブタスクを全量納品

結果:システムは 5000+ 文書のリアルタイム意味的検索をサポート。検索正確率(Hit Rate@10)は 92% に達し、エンドツーエンドのクエリ遅延は 800ms 以内。3 層テスト体系(Unit / Integration / E2E)で 1200+ のテストケースをカバー。

技術スタック:Python / LangChain / ChromaDB / BM25 / Cross-Encoder / MCP Protocol / Streamlit / Ragas / Azure OpenAI

例二:中途採用 · 既存 Agent プロジェクトに RAG の深みを統合

以下は Skill が「中途、Agent 方向、Windows プラットフォーム開発の業務バックグラウンド」に基づいて生成した出力例です(RAG 能力を既存 Agent プロジェクトに統合):

Windows プラットフォームスマート知識アシスタント | 2024.06 - 2025.02 | 中核開発

背景:Windows プラットフォーム開発チームでは、バージョンリリース関連情報(Release Notes、変更ログ、パッチ告知、互換性説明など)が複数の Wiki、ドキュメントリポジトリ、内部システムに分散。エンジニアがバージョン差異を調査したり、顧客の質問に回答する際に、複数システムを横断して探す必要があり、既存のキーワード検索は意味を理解できず、検索効率が低く、情報の見落としが頻発。

目標:チーム向けに Agent + RAG アーキテクチャのスマート知識アシスタントを構築し、複数システムの文書に対する意味的検索と自動 Q&A を実現。MCP プロトコルを通じてエンジニアの日常ツールチェーン(VS Code / Claude Desktop)に統合し、文書検索時間を 60% 以上短縮。

プロセス:

  • Agent + RAG の階層アーキテクチャを設計。Agent 側は意図認識と Tool Calling を担当し、RAG 側は BM25 + Dense Embedding ハイブリッド再現 + Cross-Encoder 精密再ランキングの二段階検索能力を提供。MCP プロトコルを通じて標準化されたツールインターフェースを公開し Agent から呼び出し可能

  • 全工程 Ingestion Pipeline を実装。PDF / Markdown の複数形式文書解析をサポート。Vision LLM を統合し、画像説明(アーキテクチャ図、スクリーンショットなど)を自動生成。「文字検索で画像を出す」のマルチモーダル検索ニーズを解決

  • プラグイン可能なバックエンドアーキテクチャを構築。LLM / Embedding / Reranker / VectorStore すべてに抽象インターフェースを定義。Azure OpenAI ↔ DeepSeek ↔ Ollama のワンクリック切り替えをサポートし、チームの異なるネットワーク環境に適応

  • Streamlit Dashboard 管理プラットフォームを構築。データ閲覧、Ingestion 追跡、クエリ追跡、評価パネルの 6 大機能ページを提供し、全工程ホワイトボックス化の可観測性を実現

  • Ragas 評価フレームワーク + Golden Test Set 回帰テストを統合。バージョン反復で検索品質を継続的にモニタリングし、Faithfulness スコアは 0.85 以上で安定

  • Skill 駆動の全工程開発モードを採用。DEV_SPEC 仕様書を作成し、auto-coder の自動コーディング、qa-tester の自動テストと修正、setup のワンクリック環境設定を駆動。5 大 Agent Skill が完全な開発ライフサイクルをカバー。2 ヶ月の余暇時間で 68 のサブタスクを納品

結果:システムはチームの 8000+ 技術文書をカバー。エンジニアの日次文書検索時間は 15 分から 3 分に短縮。検索正確率 Hit Rate@10 は 90% に達し、MCP プロトコルを通じて 3 つの社内 AI ツールに接続。累計 2 万+ 回のクエリを処理。

技術スタック:Python / Agent / Tool Calling / RAG / BM25 / Dense Retrieval / Cross-Encoder / MCP Protocol / ChromaDB / Streamlit / Ragas / Skill-Driven Development / Azure OpenAI

例三:中途採用 · バックエンドエンジニアから AI 方向へ転向

以下は Skill が「中途転向 AI、バックエンド/アーキテクチャ方向、金融コンプライアンス業務バックグラウンド」に基づいて生成した出力例です:

コンプライアンス・インテリジェント文書検索システム | 2024.10 - 2025.02 | 設計・主導開発

背景:某金融機関のコンプライアンス部門では、規制文書と内部ポリシー文書が継続的に増加し、万単位の規模に達していた。コンプライアンスチームは審査や相談の場面で特定の条項を迅速に特定する必要があったが、既存の全文検索システムはキーワードの完全一致しかできず、「反マネーロンダリング」と「AML」などの意味的に類似した表現を理解できず、条項の特定効率が低かった。

目標:モジュール型 RAG 検索システムを設計・実装し、セマンティック検索機能をコンプライアンス文書管理プロセスに導入する。類義語・言語横断的な条項マッチングをサポートし、コンプライアンス条項の特定精度を 90% 以上に引き上げることを目標とする。

プロセス:

  • システムアーキテクチャ設計を主導し、エンドツーエンドのプラグイン可能なアーキテクチャを採用。LLM / Embedding / Reranker / Splitter / VectorStore はすべて抽象インターフェースとファクトリーパターンで定義され、YAML 設定によるワンクリックでバックエンドを切り替えられ、コード変更ゼロでさまざまなデプロイ環境に適応できる。

  • BM25 スパース検索 + Dense Embedding セマンティック検索のハイブリッド再取得戦略を実装。RRF による融合ランキングで、固有名詞の完全一致と意味的類似マッチングの両立を図り、検索精度を純ベクトル方式と比較して 22% 向上させた。

  • 完全なデータ取り込みパイプラインを構築。PDF 解析 → セマンティックチャンク分割 → Chunk Refinement → Metadata Enrichment → ベクトル化ストレージをサポートし、DocumentManager による冪等管理を実装して、文書更新時のデータ一貫性を保証する。

  • 3層のテスト体制(Unit / Integration / E2E)を構築し、1200+ のテストケースをカバー。Ragas 評価フレームワークを統合して自動回帰メカニズムを確立し、反復開発中に検索品質が劣化しないことを保証する。

  • MCP プロトコルに基づき標準化されたツールインターフェースを公開し、GitHub Copilot / Claude Desktop などの AI アシスタントから直接呼び出せるようにし、「一度の開発で多端末から呼び出し」を実現するサービス化デプロイを実現。

  • Skill 駆動の全工程エンジニアリング手法を実践。DEV_SPEC 仕様書に基づき AI Agent を駆動して、コーディング(auto-coder)、テスト(qa-tester)、環境設定(setup)、クリーンアップ・パッケージング(package)を自動完了させた。68 のサブタスクをすべて Agent が納品し、開発期間を 2 か月の余暇時間に短縮した。

結果:システム稼働後、12000+ のコンプライアンス文書のリアルタイムセマンティック検索をサポートし、条項特定精度は 68% から 91% に向上、1 回のクエリ遅延は 700ms に抑えられ、コンプライアンスチームの文書レビュー効率は約 50% 向上した。

技術スタック:Python / プラグイン可能アーキテクチャ / ファクトリーパターン / BM25 / Dense Retrieval / RRF / Cross-Encoder / ChromaDB / MCP Protocol / Streamlit / Ragas / Skill-Driven Development / Azure OpenAI


💡 利用上の注意と重要な説明:

1. 増幅戦略について:Resume Writer Skill には私が設計した増幅戦略が組み込まれています。AI は合理的な範囲でプロジェクト経験を装飾・増幅します(例:定量指標、ビジネス規模など)。これは私が許可していることであり、履歴書作成の通常のやり方でもあります。しかし、これはつまり:履歴書を生成した後、面接官が各項目について何を追及するか、どう答えるべきかを必ず考え抜かなければなりません。Skill は履歴書の生成と同時に、面接での追及予測を 3〜5 件自動的に提示します。これらの質問を真剣に準備してください。

2. 履歴書を実践チェックリストとして捉える:履歴書に書いたすべての技術ポイントについて、実際に試してみるべきです。例えば履歴書に「検索精度が XX% 向上」と書いたなら、自分のデータで実行してみて、実際の効果はどうか、その過程でどんな問題に遭遇し、どうチューニングして解決したかを確認すべきです。こうした実践経験こそが面接で本当に説得力を持つ内容であり、実際に学びを得るプロセスです。履歴書に含まれていない部分(マルチモーダルを試していない、評価を実行していないなど)も、これを機にコード実験をしてみてください。

3. 生成されるのは初稿であり、必ず自身の状況に合わせて修正すること:Skill が生成する履歴書は初稿であり、最終版ではありません。自分の実際の状況に合わせて調整する必要があります——どの技術を本当に深く使ったか、どの技術は知っているだけか、どのデータを自分のものに置き換えるか。履歴書作成には鉄則があります:履歴書に書いたことは必ず説明できなければならない。たとえある点が増幅されたものであっても、面接官がどう質問するか、どう整合性のある説明をするかを考え抜く必要があります。説明できないことは書かないほうがましで、書いたからには追及に耐えられるようにする。

4. 方法はテンプレートよりも重要:履歴書作成の考え方全体は私のものです——増幅戦略、4 段階構成(背景 → 目標 → プロセス → 結果 → 技術スタック)、ハイライトマッチングロジックなど、これらはすべて Resume Writer Skill に凝縮されています。もし自分がより信頼する履歴書テンプレートがある場合や、プロジェクトを拡張・修正した場合は、Skill 自体を修正して適合させればよいのです。「Skill に方法論を蓄積し、AI にルールに従って実行させる」というこのロジックを学ぶことは、履歴書そのものよりも価値があります——この考え方は、将来のあらゆるプロジェクトの履歴書作成に応用できます。

5. Skill 駆動の全工程を書くことを強く推奨:私個人の意見として、Skill 駆動の全工程開発というクローズドループは、誰の履歴書にも書くのに適しています。Skill は現在非常にホットな方向性であり、面接での必須事項になっています。多くの企業内部でも Skill を使ってプロジェクト構築を加速する方法を研究しています。あなたが Skill を使ってプロジェクト全体をコーディング → テスト → 修正 → 設定 → パッケージングまで完結させたクローズドループをどう実現したかを明確に説明すること自体が、革新的で先進的なハイライトであり、面接官に強い印象を与えます。Skill 関連の内容を面接でどう話すか、追及にどう答えるかについて、後ほど例もいくつか提供します。


❓ よくある質問

1. Provider を切り替えるには(例:Qwen / DeepSeek / Ollama に変更)?

とても簡単です——AI に頼んでやってもらうだけです。

プロジェクトはアーキテクチャ設計上、**ファクトリーパターン(Factory Pattern)**を採用しており、Provider の拡張と切り替えが非常に簡単です。内部の仕組みを理解すればわかるのですが、異なる API は本質的に似たような HTTP リクエストであり、ほとんどが OpenAI のリクエスト形式に従っているため、切り替えは特に容易です。

具体的な操作方法は 2 つあります:

  1. Setup Skill を使用する(推奨):ワンクリックの Setup Skill を実行すると、AI がどの Provider を使いたいかを自ら尋ね、API Key の入力を案内し、コードの適合と設定生成を自動で完了してくれます。

  2. AI に直接修正してもらう:切り替えたい Provider を AI に伝えると(例:「Qwen に切り替えて」や「DeepSeek を設定して」)、AI はファクトリーパターンのアーキテクチャに基づいてコード作成を自動で完了できます。

原理の説明:プロジェクトの src/libs/ 配下の LLM、Embedding、Reranker などのモジュールはすべてファクトリーパターンを使用しています。Provider を追加するには、① Provider クラスを新規追加する、② ファクトリに登録する、③ settings.yaml の設定を更新する、だけで済みます。AI はこれらの手順を完全に自動で実行できます。

2. プロジェクト評価(Custom Evaluator)と Cross-Encoder Reranker の部分

この 2 つのモジュールはフレームワークコードがすでに用意されていますが、完全なテストはまだ行われていません。興味のある方はご自身で完成させてください:

モジュール

ステータス

必要な作業

カスタム評価(Custom Evaluator)

フレームワークのみ、未テスト

評価方法を定義し、対応するテストデータセットを準備する

Cross-Encoder Reranker

フレームワークのみ、未テスト

ローカル用リランクモデルをダウンロードする必要がある(例:cross-encoder/ms-marco-MiniLM-L-6-v2)

これらはすべて AI が書くことができます。要件を明確に説明すれば、AI は評価方法の実装、データの準備、モデルのダウンロード、統合テストの完了まで支援してくれます。これらの拡張を完了することは面接でも加点要素になり、あなたの自立した拡張能力を示します。

3. プロジェクトでエラー / Bug が発生したら?

これは広範囲にテストされた本番級プロジェクトではなく、面接向けの実践プロジェクトです。 エラーに遭遇するのは正常です。

  • 面接への影響:プロジェクトの Bug は面接にほとんど影響しません——面接官はあなたのプロジェクトを実際に実行したりはせず、アーキテクチャ、原理、設計判断への理解に注目します。

  • 修正方法:最も簡単な方法はエラーメッセージをそのまま AI に渡すことです。ほとんどの問題は AI が修正してくれます。

  • 参考リソース:ノートで紹介している Tina Huang の動画でも、AI を使ってエラーを素早く修正するこの方法が紹介されています。

4. PDF 以外の文書形式(Word / Markdown / HTML など)を取り込みたい場合は?

AI に直接頼んで拡張してもらえばよいです。

プロジェクトの Loader 層はプラグイン可能な抽象設計(BaseLoader)を採用しており、現在はデフォルトで PDF Loader が実装されています。Word、Markdown、HTML などの他の形式をサポートする必要がある場合、全体アーキテクチャには拡張ポイントがすでに設計されているので、AI に対応する Loader の実装を追加してもらえばよいです。

例えば AI に「既存の PDF Loader 実装を参考に、Word 文書用の Loader を新規追加して」と伝えれば、AI は完全に対応できます。

5. AI ツール(Copilot / Cursor / Claude Code など)に統合するには?

このプロジェクトは MCP Server であり、MCP プロトコルをサポートするあらゆる AI ツールや Agent に統合できます。私のデモではすでに GitHub Copilot と Cursor に統合していますが、Claude Code や他の MCP フレームワークをサポートするツールにも同様に統合できます。

どう統合するのか?とても簡単です——AI に聞くだけです。

本質的には、異なるツールごとに MCP の設定ファイルを書くだけです:

  • Copilot(VS Code):AI に MCP 設定ファイルを生成してもらうだけです

  • Cursor:プロジェクトを直接インポートすれば、Cursor が自動的に認識します

  • Claude Code / その他のフレームワーク:AI に設定方法を聞いてください。ツールごとに設定方法は少し異なりますが、原理は同じです

もちろん、MCP プロトコルの原理を理解することもお勧めします——Server と Client がどのように通信するか、Tool がどのように登録・呼び出しされるかを理解してください。これらも面接では加点要素になります。

6. 一般的なアドバイス:AI を活用する

上記のほとんどの問題(Provider 切り替え、モジュール拡張、Bug 修正、アーキテクチャ理解)はAI で解決できます:

  • 🔧 コード面:AI に Provider の切り替え、評価方法の実装、Bug の修正を依頼する

  • 📖 知識面:プロジェクトアーキテクチャの問題、デザインパターンの問題は、AI に説明を求めることができる

  • 🚀 拡張面:新機能を追加したい、新しいシーンに適応したい場合は、要件を明確に説明して AI に実装してもらう

どんどん AI に質問して、指導してもらいましょう。これもこのプロジェクトが伝えたい核心理念の一つです——AI と協力して開発することを学ぶ。


📌 今後の予定

✅ やること

  • プロジェクト関連の質問のまとめと FAQ 整理

  • 面接でよくある質問の整理と参考回答

  • 技術ポイントの解説(RAG の核心知識、アーキテクチャ設計など)

  • 履歴書のブラッシュアップ提案と実例

  • 実際の面接実践:このプロジェクトを持って面接に行き、遭遇した問題とどう答えたかをドキュメントにまとめます

  • 投稿・共創歓迎:このプロジェクトを持って面接に行った方は、面接の録音を私に送ってください。プロジェクト関連の問題を分析してドキュメントに書き込みます。また、面接全体の改善提案も聞いてフィードバックします。みんなで共に成長し、このプロジェクトの面接 Q&A を一緒にまとめて充実させましょう

❌ やらないこと

  • 新機能の拡張は続けない

  • Bug Fix や設計最適化などは対応しない

    • Bug や設計上の改善点に遭遇した場合は、自分のプロジェクトで修正・最適化してください

    • 今後の拡張と修正は必ず自分自身で行う必要があります。そしてAI があれば、これらはどれも簡単に実現できます

    • これ自体が優れた学習機会であり、面接での加点要素です

    • プロジェクトを理解した上で自立して拡張することこそが、本当の能力の証明です

📝 個人の計画について

今後は大規模モデルのアルゴリズム、トレーニングの方向性を学んでいく予定で、いくつかのメモや考えをノートにまとめていきます。そのため、このプロジェクトについては機能を無限に拡張したり Bug を修正したりはしませんが、以下のことは継続して行うつもりです:

  • このプロジェクトが面接で遭遇した問題をまとめる

  • どう答えるか、どう反復して最適化するかの考え方を整理する

  • 面接 Q&A をドキュメントに蓄積し、みんなの参考に供する


📚 付属リソース

このプロジェクトには完全な付属学習リソースが用意されています:

  • 🎬 動画解説:プロジェクトアーキテクチャ設計、Skill の使い方、DEV_SPEC の書き方、開発全工程のデモ

  • 📝 面接ノート:大規模モデル方向の面接準備、RAG の核心知識ポイントの整理

  • ❓ 面接質問の参考:このプロジェクトが面接で遭遇した実際の質問と参考回答

  • 📖 定番知識の整理:大規模モデル / RAG / NLP 関連の頻出面接問題

👉 小红书 をフォローしてください:不转到大模型不改名 で上記のすべてのリソースを入手できます。

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides RAG-based knowledge retrieval and document management as MCP tools, supporting hybrid search, reranking, and retrieval process visualization.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    A pluggable, observable modular RAG service framework that exposes tools via MCP protocol for AI assistants, supporting hybrid search, reranking, multi-modal processing, and evaluation.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A modular RAG framework exposing knowledge retrieval tools via MCP, enabling AI assistants to perform hybrid search, reranking, and multimodal document queries with full observability and evaluation.
    MIT