graphrag-system-design について
GraphRAGシステムを計画するための設計スキルです。検索要件の分析からアーキテクチャ選定、デプロイ仕様の作成までを支援し、3つの検索パターンと各構成要素の連携を扱います。
主な機能
- 017段階のシステム設計チェックリスト
- 02検索パターンの選定ガイド
- 03グラフとベクトルのパイプライン設計
- 04ドメイン別アーキテクチャの検討
- 05デプロイと保守の計画
活用シーン
- 01複合クエリ向け検索アーキテクチャの選定
- 02グラフを用いた取り込み・検索パイプラインの設計
- 03コンプライアンスや分野要件に応じたGraphRAGの調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill graphrag-system-designインストール後、Claude Code で/graphrag-system-designを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
resources/domain-patterns.mdmethodology.mdtechnology-stacks.mdresources/evaluators/rubric_system_design.json詳細
目次
GraphRAG システム設計
ワークフロー
このチェックリストをコピーして、各ステップに沿って進めてください。
GraphRAG System Design Progress:
- [ ] Step 1: Analyze domain requirements
- [ ] Step 2: Select GraphRAG pattern
- [ ] Step 3: Choose technology stack
- [ ] Step 4: Design integration pipeline
- [ ] Step 5: Apply domain customizations
- [ ] Step 6: Define deployment strategy
- [ ] Step 7: Produce specification
ステップ 1:ドメイン要件を分析する
検索の課題を明確にします。クエリの複雑さ(単一ホップかマルチホップか)、データ量と更新頻度、コンプライアンス上の制約、レイテンシ要件、説明可能性のニーズを把握します。フラットな検索よりグラフ構造が有効かどうかを判断します。マルチホップ推論、エンティティの曖昧さの解消、関係性を考慮したコンテキストの組み立ては、GraphRAG が有効であることを示す強い兆候です。システムが対応するユーザーペルソナとクエリパターンを定義します。
ステップ 2:GraphRAG パターンを選択する
GraphRAG パターンの選択ガイドを使って、コアとなる検索アーキテクチャを選択します。クエリパターンに適したパターンを選びます。構造化データと非構造化データが混在するクエリには Hybrid Symbol-Vector、対象を絞ったコンテキストの組み立てには Subgraph-on-Demand、広範なテーマに関するクエリには Community-Based Global Summarization を使用します。各パターンの詳細については、方法論リファレンスを参照してください。
ステップ 3:技術スタックを選択する
グラフデータベース、ベクトルデータベース、オーケストレーションフレームワーク、LLM プロバイダーなど、各アーキテクチャレイヤーのコンポーネントを選択します。コンポーネントごとの比較には、技術スタックリファレンスを使用してください。重要な判断事項は、単一システムか複数システムのハイブリッドか、マネージドかセルフホスト可能か、フレームワークベースかカスタムパイプラインかです。チームの専門知識、予算の制約、既存のインフラストラクチャを考慮してください。
ステップ 4:統合パイプラインを設計する
データの取り込みから生成までのエンドツーエンドのデータフローを定義します。コアとなるパイプラインの各段階は、取り込み(生データ)-> 抽出(エンティティと関係)-> KG の構築(グラフへの格納)-> インデックス作成(ベクトル埋め込みとグラフインデックス)-> 検索(グラフとベクトルのハイブリッド検索)-> 生成(グラフに基づくコンテキストを使った LLM)-> 引用(グラフパスから取得する出典情報)です。グラフ探索、ベクトル検索、またはその両方を使うタイミングを決定するクエリルーティングロジックを設計します。パイプライン設計上の考慮事項については、方法論リファレンスを参照してください。
ステップ 5:ドメイン固有のカスタマイズを適用する
汎用アーキテクチャをドメイン固有の要件に合わせて調整します。オントロジーの選択(医療には UMLS、金融には FIBO)、コンプライアンスパターン(HIPAA のアクセス制御、規制対応の監査証跡)、ドメイン固有の検索パターン(金融には時間グラフ、臨床には階層化された患者グラフ)を検討します。ドメイン固有のガイダンスについては、ドメインパターンリファレンスを参照してください。
ステップ 6:デプロイ戦略を定義する
グラフデータベースのサイジングとクラスタリング、ベクトルインデックスの設定、キャッシュ戦略、バッチ取り込みかリアルタイム取り込みか、監視と可観測性、スケーリング計画など、デプロイアーキテクチャを指定します。クエリのレイテンシ、スループット、新鮮さに関するパフォーマンス SLA を定義します。グラフの保守に向けて、増分更新、スキーマの進化、データ品質の監視を計画します。
ステップ 7:仕様書を作成する
出力テンプレートを使って、システム設計の仕様書一式をまとめます。システム設計ルーブリックに照らして検証します。明確なデータフロー、エラー処理、フォールバック戦略により、すべてのコンポーネントがエンドツーエンドで接続されていることを確認してください。
GraphRAG パターンの選択
| パターン | クエリタイプ | 仕組み | 最適な用途 | トレードオフ |
|---|---|---|---|---|
| ハイブリッドなシンボル・ベクトル検索 | 構造化検索と意味検索の混在 | グラフの種類や制約で事前に絞り込んでから埋め込みの類似度で順位付けするか、広範なベクトル検索の後にグラフに基づいて拡張します | 正確な構造クエリとあいまいな意味検索の両方が必要なシステム、エンティティの曖昧性解消を伴うエンタープライズ QA | 複雑性が高く、グラフインデックスとベクトルインデックスの同期が必要です。レイテンシは、絞り込み後に順位付けするか、拡張するかの戦略によって異なります |
| オンデマンドのサブグラフ | 焦点を絞ったマルチホップ検索 | モノリシックなグラフに対してクエリを実行する代わりに、クエリごとの一時的なサブグラフを構築します。関連する近傍を抽出して埋め込みを生成し、検索します | 焦点を絞ったコンテキストが必要なリアルタイムアプリケーション、頻繁に更新されるシステム、コスト重視のデプロイ | サブグラフ構築時のコールドスタートによるレイテンシがあり、効率的なサブグラフ抽出が必要です。コンテキストから、関連はあるものの離れたノードが漏れる可能性があります |
| コミュニティベースのグローバル要約 | 広範なテーマ別検索/グローバル検索 | グラフ内のコミュニティやクラスタを検出し、各コミュニティの要約の埋め込みを生成します。関連するコミュニティを検索してから、エンティティの詳細を掘り下げます。Microsoft GraphRAG のパターンです | 広範な「X とは何か?」というクエリ、コーパス全体の要約、大規模なナレッジベースを横断したテーマ別の探索 | コミュニティの定期的な検出(一括処理)が必要です。要約で詳細が失われる可能性があり、コミュニティの境界によって関連する概念が分断されることがあります |
パターンの選択
- 「タイプ X のエンティティを検索」と「意味的に類似したコンテンツを検索」の両方がクエリで必要な場合 -> ハイブリッドなシンボル・ベクトル検索
- クエリの焦点が絞られており、コンテキストウィンドウのコストが重要な場合 -> オンデマンドのサブグラフ
- クエリの範囲が広く、テーマ別、またはコーパス全体に及ぶ場合 -> コミュニティベースのグローバル要約
- 要件が複数のパターンにまたがる場合 -> 適切な検索経路に振り分けるクエリルーターを使ってパターンを組み合わせます
統合アーキテクチャ
完全な GraphRAG システムは、次の 4 つのコアコンポーネント層を統合します。
+------------------+ +------------------+ +----------------------+ +-----------+
| Graph Database | | Vector Database | | Orchestration | | LLM |
| (Structure) |<--->| (Semantics) |<--->| Framework |<--->| (Reason) |
| | | | | | | |
| Neo4j / Tiger | | Pinecone / | | LangChain / | | GPT-4 / |
| Graph / Neptune | | Weaviate / | | LlamaIndex / | | Claude / |
| / GraphDB | | Qdrant / pgvec | | LangGraph / Custom | | Llama |
+------------------+ +------------------+ +----------------------+ +-----------+
| | |
v v v
Graph Traversal Embedding Search Pipeline Logic
Multi-hop Paths Semantic Ranking Query Routing
Schema Filtering Similarity Scores Context Assembly
Provenance Chains Hybrid Re-ranking Citation Generation
主な統合上の決定事項:
- グラフ優先とテキスト優先のパイプライン:クエリはまずグラフ(構造化フィルター)に送られますか、それともベクトルストア(意味検索)に送られますか?
- 単一システムと複数システム:Neo4j ベクトルインデックス(単一システム)を使いますか、それとも Neo4j + Pinecone(複数システム)を使いますか?
- フレームワークとカスタム実装:迅速な開発には LangChain/LlamaIndex を使いますか、それとも最大限の制御にはカスタムパイプラインを使いますか?
- 同期:更新中にグラフインデックスとベクトルインデックスの整合性をどのように保ちますか?
出力テンプレート
GRAPHRAG SYSTEM DESIGN SPECIFICATION
======================================
Project: [Project name]
Domain: [Target domain]
Date: [Date]
Author: [Author]
1. DOMAIN REQUIREMENTS
Query Patterns: [Single-hop / Multi-hop / Thematic / Mixed]
Data Volume: [Document count, entity count estimates]
Update Frequency: [Real-time / Daily / Weekly / Batch]
Latency Requirements: [p50, p95, p99 targets]
Compliance: [HIPAA / GDPR / SOX / None]
Explainability: [Required / Nice-to-have / Not needed]
2. GRAPHRAG PATTERN
Primary Pattern: [Hybrid Symbol-Vector / Subgraph-on-Demand / Community-Based]
Secondary Pattern: [If hybrid approach, specify]
Query Router: [How queries are dispatched to retrieval paths]
Rationale: [Why this pattern fits the requirements]
3. TECHNOLOGY STACK
Graph Database: [Product, version, deployment mode]
Justification: [Why this choice]
Vector Database: [Product, version, deployment mode]
Justification: [Why this choice]
Orchestration: [Framework or custom pipeline]
Justification: [Why this choice]
LLM Provider: [Model, API or self-hosted]
Justification: [Why this choice]
Supporting Infrastructure: [Cache, queue, monitoring tools]
4. INTEGRATION PIPELINE
Ingestion:
- Source types: [Documents, APIs, databases]
- Processing: [Chunking strategy, metadata extraction]
Extraction:
- Entity extraction: [Method, model, confidence threshold]
- Relation extraction: [Method, schema enforcement]
Knowledge Graph Build:
- Schema: [Node types, edge types, properties]
- Population: [Batch / streaming, deduplication strategy]
Indexing:
- Graph indices: [Index types, query optimization]
- Vector indices: [Embedding model, dimension, index type]
Retrieval:
- Graph retrieval: [Traversal strategy, depth limits]
- Vector retrieval: [Top-k, similarity threshold]
- Hybrid fusion: [How graph and vector results combine]
Generation:
- Context assembly: [How retrieved data becomes LLM context]
- Prompt template: [Structure for graph-grounded generation]
Citation:
- Provenance: [How sources are tracked and surfaced]
5. DOMAIN CUSTOMIZATIONS
Ontology: [Domain ontology or taxonomy used]
Compliance Controls: [Access control, audit, encryption]
Domain-Specific Patterns: [Temporal graphs, layered architecture, etc.]
6. DEPLOYMENT STRATEGY
Infrastructure: [Cloud provider, regions, HA configuration]
Scaling Plan: [Graph DB scaling, vector DB scaling, LLM scaling]
Monitoring: [Metrics, alerts, dashboards]
Maintenance: [Graph update strategy, schema evolution plan]
7. PERFORMANCE TARGETS
Query Latency: [p50, p95, p99]
Throughput: [Queries per second]
Freshness: [Time from data change to queryable]
Accuracy: [Retrieval precision/recall targets]
8. RISK AND MITIGATION
- [Risk 1]: [Mitigation strategy]
- [Risk 2]: [Mitigation strategy]
- [Risk 3]: [Mitigation strategy]
NEXT STEPS:
- Build proof-of-concept with sample data
- Benchmark retrieval quality against baseline RAG
- Load test with production-scale data
- Iterate schema and retrieval strategy based on evaluation