Meta-RAG Framework MCP Phase 2: 回復力と一貫性を備えたRAGシステム
Meta-RAG Framework MCP Phase 2: 回復力と一貫性を備えたRAGシステム
はじめに
こんにちは! satto 開発チームでR&Dをしている野澤です。
(@ryo_nozawa)
Phase 1では、LeanRAGやHiRAG Bridgeを含む複数エンジンを共通I/Fで統合しました。
研究レベルの技術を実際に動作するRAG基盤として実装しました。
「単なる検索応答」ではなく、オーケストレーションと品質保証を備えた基盤です。
Phase 2では、その基盤の上に Resilience(回復力) と Coherence(一貫性) を中核機能として追加しました。
Rex-RAG、Como-RAGをはじめとする8つの新機能を完全実装しました。
従来のRAGでは不可能だった「自動回復」「矛盾検出」「時間軸検索」「マルチモーダル統合」などを実現しました。
🧩 Phase 2で解決する課題
-
デッドエンド検索の回復
- 低スコア・低被覆・タイムアウト時の回復戦略が不足
-
一貫性と説明可能性の欠如
- 複数ソース間の矛盾を検出・修正できない
-
時間軸情報の活用不足
- 「過去時点」や「進化パターン」を分析できない
-
マルチモーダル検索の限界
- 画像+テキストの反復的な精度改善ができない
-
ツール統合の複雑性
- API呼び出しの順序や関係を最適化できない
🧭 Phase 2の解決アプローチ
課題 | 解決アプローチ | 効果(設計値) |
---|---|---|
デッドエンド回復 | Rex-RAG: 自動失敗検知と再探索 | 検索成功率 +40% |
一貫性と説明可能性 | Como-RAG: 矛盾検出・修正、推論ログ | 矛盾検出率 +60% |
時間軸情報 | TKG: Episode/Entity/Community 3層構造 | 時間軸分析の精度 +50% |
マルチモーダル検索 | MiRAG: 反復的マルチモーダル検索 | マルチモーダル精度 +35% |
ツール統合 | API Graph: ツール依存関係をグラフ化 | 統合効率 +45% |
合成パイプライン | MSRS: Retrieval/Synthesis失敗分離 | 合成品質 +30% |
探索効率 | Anchor-RAG: 並列探索とアンカー選択 | 探索効率 +25% |
速度最適化 | REFRAG: 圧縮デコード | 最大30x高速化 |
🎯 Phase 2の主要機能
- Rex-RAG(Resilience Engine)[1]
目的: 検索失敗やデッドエンドからの自動回復
実装内容:
- デッドエンド検知: 低スコア・低被覆・タイムアウト・反復ゼロ進捗の自動検出
- 回復戦略: 混合サンプリング再探索・分布シフト補正・代替エンジン選択
- Orchestrator統合: 自動的にRexPolicyが実行され、透明な回復を実現
// Rex-RAGの自動回復例
const deadendSignal = rexPolicy.shouldRecover(context);
if (deadendSignal) {
const recovered = await this.executeRecovery(rexPolicy, context, deadendSignal);
recoveryLog.push(`Rex recovery triggered (${deadendSignal}) using engine ${recovered.result.engine}.`);
}
- Como-RAG(Coherence Engine)[2]
目的: 一貫した推論と世界モデルの管理
実装内容:
- Memory Workspace: Evidence・Claim・Link・Conflictの統合管理
- 一貫性チェック: 矛盾検出・修復提案・整合性検証
- 推論ログ: 決定トレース・エビデンスチェーン・説明可能性
// Como-RAGの一貫性チェック例
const consistencyConflicts = this.consistencyChecker.detectConflicts(workspace);
consistencyConflicts.forEach(conflict => workspace.registerConflict(conflict));
const repairs = this.consistencyChecker.proposeRepairs(workspace, consistencyConflicts);
- TKG(Temporal Knowledge Graph)[3]
目的: Episode/Entity/Community 3層構造による時間軸の知識管理
実装内容:
- 3層構造: Episode(イベント)・Entity(実体)・Community(コミュニティ)
- 時間軸検索: 「最新のみ」「過去時点」「時間範囲」の3モード
- 進化パターン分析: 安定・成長・衰退・変動・出現・溶解の6パターン
// TKG時間軸検索例
const query: TemporalQuery = {
temporalMode: 'historical_point',
timePoint: new Date('2023-01-01')
};
const result = await tkgIntegration.searchTemporal(query);
- MiRAG(Multimodal Iterative RAG)[4]
目的: 反復的マルチモーダル検索とRKS-POM・MDIA統合
実装内容:
- 画像処理エンジン: オブジェクト検出・OCR・メタデータ抽出
- 反復的改善: 最大3回の反復ループによる検索精度向上
- クロスモーダル洞察: テキストと画像の相関・矛盾・強化分析
// MiRAG反復検索例
const result = await miragEngine.performMiRAGSearch({
text: "この画像の内容を分析して",
image: base64ImageData,
context: "詳細分析が必要"
});
- API Graph(Tool-Graph Planner)
目的: ツール呼び出しのセマンティック関係と実行計画
実装内容:
- ツールノード管理: 入力・出力スキーマ・コスト・レイテンシ情報
- セマンティック関係: ツール間の依存関係・実行順序の最適化
- 実行パス計画: 目標達成のための最適なツール順序決定
// API Graph実行計画例
const path = toolGraphPlanner.plan({ targetTool: 'gdrive.search' });
workspace.appendTrace({
step: 'tool_graph',
detail: { tool: targetTool, pathLength: path?.nodes.length ?? 0 }
});
- MSRS(Multi-Source Reporting System)
目的: Retrieval失敗とSynthesis失敗の分離・マルチソース統合
実装内容:
- エビデンスマトリックス: Claim・Evidence・Linkの関係性構築
- 失敗分離: Retrieval失敗とSynthesis失敗の明確な区別
- マルチソース合成: 複数ソースからの情報統合・ギャップ検出
// MSRS合成例
const matrix = this.synthesizer.buildMatrix(claims, evidences, links);
const synthesis = this.synthesizer.synthesize(matrix, options.explain ? 'report' : 'answer');
- Anchor-RAG(Starting Point Selection)[5]
目的: 知識グラフ探索における開始点選択と並列探索
実装内容:
- アンカー記録: 各検索ステップの最初のエビデンスをアンカーとして記録
- 並列探索: 複数アンカーからの同時探索によるリカバリ強化
- BrowserExecutor統合: 計画実行時に自動的にアンカーが記録される
// Anchor-RAG並列探索例
if (stepEvidences.length > 0) {
anchors.push(stepEvidences[0].id); // Anchor-RAG: 最初のエビデンスをアンカーとして記録
}
- REFRAG(Compression/Decompression)[6]
目的: 圧縮デコードによる長文コンテキストの効率化
実装内容:
- 重要度ベースゲート: 重要度0.8以上は生データ、以下は400文字要約
- 選択的展開: 必要な部分のみを展開するポインタベースアクセス
- 高速化: 最大30倍のスピードアップと16倍のコンテキスト拡張
// REFRAG圧縮例
const refragInfo = this.applyRefragLayerIfNeeded(mergedDocs);
if (refragInfo.applied) {
context.metrics.speedLayerApplied = true;
}
🏗️ システム構成図
┌─────────────────────────────────────────────────────────────┐
│ Meta-RAG Framework Phase 2 │
├─────────────────────────────────────────────────────────────┤
│ MCP Protocol Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Tools │ │ Server │ │ Client │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Orchestrator (Phase 2 Enhanced) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Planner │ │ Browser │ │ Synthesizer │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Rex-RAG │ │ Como-RAG │ │ TKG │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MiRAG │ │ API Graph │ │ REFRAG │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Phase 1 Base Engines │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ LightRAG │ │ PathRAG │ │ FastGraph │ │
│ │ (LeanRAG │ │ (+ HiRAG) │ │ RAG │ │
│ │ features) │ │ features) │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Guardrails & Metrics │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Security │ │ Validation │ │ Audit │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
🔄 Phase 2システムシーケンス図
🔄 シーケンス図の読み方補足
- RexPolicy: 検索失敗を検知すると即座に介入し、自動回復する
- ConsistencyChecker: 合成後に呼ばれ、ソース間の矛盾を検出
- ToolGraphPlanner: 他ツールを呼び出す際に「最適順序」を自動計画
- RefragLayer: 出力前に圧縮層が適用され、高速化とコンテキスト拡張を実現
これにより、失敗回復→矛盾修正→統合→高速化 の一連の流れが Orchestrator 内で自動的に完結します。
🛠️ Phase 2 MCPツール一覧(8個追加)
🔍 MiRAG関連ツール(1個)
ツール名 | 説明 | 主要パラメータ |
---|---|---|
mirag_search |
反復・マルチモーダル検索の実行 |
query , image_data , context , max_iterations , enable_cross_modal
|
⏰ TKG関連ツール(5個)
ツール名 | 説明 | 主要パラメータ |
---|---|---|
tkg_search |
時間軸知識グラフ検索の実行 |
temporal_mode , time_point , time_range_start , time_range_end , entity_types
|
tkg_add_episode |
TKGにEpisodeを追加 |
id , title , description , start_time , end_time , entities
|
tkg_add_entity |
TKGにEntityを追加 |
id , name , type , properties , episodes , communities
|
tkg_add_community |
TKGにCommunityを追加 |
id , name , description , entities , episodes , cohesion
|
tkg_statistics |
TKG統計情報の取得 |
index_name , time_range
|
🔧 統合ツール(6個)
ツール名 | 説明 | 主要パラメータ |
---|---|---|
research_plan |
研究計画の生成(Planner/Browser分離) |
query , context , max_steps , planning_mode
|
execute_plan |
計画の実行(Anchor-RAG統合) |
plan_id , execution_options , parallel_execution
|
synthesize_evidence |
エビデンス合成(MSRS統合) |
evidence_list , synthesis_mode , explain_mode
|
workspace |
Workspace管理(Como-RAG統合) |
workspace_id , operation , memory_config
|
tool_graph |
ツールグラフ計画(API Graph統合) |
target_tool , execution_context , optimization_level
|
speed_layer |
速度最適化(REFRAG統合) |
content , compression_level , performance_mode
|
💡 実際の使用例
例1: デッドエンド検索の自動回復。
// 2005年に存在したが現在は消滅した日本の企業一覧
const query = "2005年に存在したが現在は消滅した日本の企業一覧を最新の資料ベースで教えて";
// Rex-RAGが自動的にデッドエンドを検知し、回復戦略を実行
const result = await orchestrator.answer(query);
// → 低スコア検知 → 代替エンジン選択 → クエリ多様化 → 成功
例2: 矛盾検出と修正。
// 東京タワーの高さの矛盾検出
const query = "東京タワーの高さを2つのソースから引用して回答して。数値が食い違う場合は説明して";
// Como-RAGが自動的に矛盾を検知し、説明を生成
const result = await orchestrator.answer(query);
// → 333m vs 332.6mの矛盾検出 → 測定方法の違いを説明
例3: マルチモーダル反復検索。
// 画像+テキストの反復検索
const query = {
text: "この登山地図を参照しながら、最適な3日間の縦走プランを提案して",
image: base64ImageData,
context: "詳細なルート分析が必要"
};
// MiRAGが反復的に検索精度を向上
const result = await miragEngine.performMiRAGSearch(query);
// → 1回目: 基本分析 → 2回目: 詳細分析 → 3回目: 最適化
例4: 時間軸知識グラフ検索。
// 過去時点の情報取得
const query = {
temporalMode: 'historical_point',
timePoint: new Date('2020-01-01'),
entityTypes: ['organization', 'event']
};
// TKGが2020年1月1日時点の情報を取得
const result = await tkgIntegration.searchTemporal(query);
// → Episode/Entity/Communityの時間軸関係を分析
🚀 従来のRAGシステムとの比較
機能 | 従来RAG | Meta-RAG Phase 2 |
---|---|---|
失敗回復 | 手動再実行 | Rex-RAG自動回復 |
一貫性 | 矛盾未処理 | Como-RAG矛盾検出・修正 |
時間軸 | 静的検索のみ | TKG時間軸検索 |
マルチモーダル | テキストのみ | MiRAG統合検索 |
ツール統合 | 順序手動管理 | API Graph計画 |
合成 | 単純結合 | MSRSマルチソース統合 |
探索 | 単一パス | Anchor-RAG並列探索 |
速度 | 線形処理 | REFRAG 30x高速化 |
研究技術の実装
Phase 2では、以下の研究技術を実際に動作する形で実装:
- Rex-RAG: デッドエンド検知・自動回復の実装
- Como-RAG: Workspace Memory・一貫性チェックの実装
- TKG: Episode/Entity/Community 3層構造の実装
- MiRAG: 反復的マルチモーダル検索の実装
- MSRS: Yale MSRS(Multi-Source Reporting System)の実装
- Anchor-RAG: 開始点選択・並列探索の実装
- API Graph: ツールグラフプランニングの実装
- REFRAG: 圧縮デコード最適化の実装
⚡️Phase 2パフォーマンス特性(設計値)
機能 | 改善指標 | Phase 1 | Phase 2 | 改善率 |
---|---|---|---|---|
検索成功率 | デッドエンド回復 | 70% | 95% | +35% |
矛盾検出率 | 一貫性チェック | 20% | 85% | +325% |
時間軸分析 | TKG検索精度 | N/A | 90% | 新機能 |
マルチモーダル | 画像+テキスト精度 | N/A | 88% | 新機能 |
ツール統合 | 実行計画の成功率 | 60% | 92% | +53% |
合成品質 | MSRS統合精度 | 75% | 95% | +27% |
探索効率 | Anchor並列探索 | N/A | 85% | 新機能 |
処理速度 | REFRAG圧縮 | 100% | 30x | 新機能 |
🔒 Phase 2セキュリティとガードレール
1. Rex-RAG回復時のセキュリティ
- 回復戦略の実行時の監査ログ記録
- 代替エンジン選択時の権限チェック
- クエリ多様化時のPII検出
2. Como-RAG一貫性チェック
- 矛盾検出時の機密情報マスキング
- 修復提案の承認フロー
- 推論ログの暗号化保存
3. TKG時間軸データ保護
- Episode/Entity/Communityのアクセス制御
- 時間軸検索時のデータフィルタリング
- 進化パターン分析の匿名化
4. MiRAGマルチモーダルセキュリティ
- 画像データのPII検出・マスキング
- クロスモーダル洞察の機密性チェック
- 反復ループの実行制限
Phase 2まとめ
Meta-RAG Framework MCP Phase 2では、Phase 1の基盤の上に回復力と一貫性を備えた高度RAGシステムを構築しました。
主要成果。
- 8つの新機能の完全実装
- Rex-RAG(自動失敗回復)
- Como-RAG(一貫性チェック)
- TKG(時間軸知識グラフ)
- MiRAG(マルチモーダル反復検索)
- MSRS(マルチソース統合)
- Anchor-RAG(並列探索)
- API Graph(ツール計画)
- REFRAG(圧縮最適化)
- 研究技術の実装
- 論文レベルの技術を実際に動作する形で実装
- MCP統合による開発者フレンドリーな利用環境
- Orchestrator統合による透明な実行
- 従来RAGとの明確な差別化
- 自動失敗回復による高信頼性
- 矛盾検出・修正による高品質
- 時間軸分析による高精度
- マルチモーダル統合による高機能性
Phase 2の実装により、RAGシステムは「知的処理」へと進化しました:
知的処理: 回復・一貫性・時間軸・マルチモーダル・統合・探索・最適化
これにより、従来のRAGシステムでは困難だった複雑な分析タスクを自動化しました。
高品質な結果を提供できるように実装しました。
今後の展開(予告)
Phase 3(HyperGraphRAG+RAS)
- インデクシング:エンティティ抽出 → ハイパーエッジ(n≥2) 生成
- リトリーバル:entity-path × hyperedge-path のDual-path+Rank Fusion
- RAS(Retrieval & Structuring) を組み込み、取り出す+構造化するまでを一気通貫化。
Phase 4(RL Policy / RAG3.0)
- UR2:カリキュラム学習+二段階報酬(Format → Answer)
- Serving:RL方策 or Heuristics をゲーティング選択(フェイルセーフでHeuristicsへ)
RAG3.0 に進化しても、Phase 1・2 の各エンジンは 基盤技術として継続的に重要 です。
Discussion