memory-fabric について
Memory Fabricは、保存された記憶から関連するコンテキストをまとめるエージェント向けのグラフ検索スキルです。クエリ解析、関係のたどり、重複排除、結果の順位付けを行います。
主な機能
- 01自然言語クエリ解析
- 02ナレッジグラフ検索と走査
- 03結果の形式統一と重複排除
- 04相互参照による関連度加算
- 05新しさと関連度による順位付け
活用シーン
- 01トピックやエンティティから過去の決定を検索
- 02概念間の複数段階の関係を追跡
- 03検索した記憶を統合して順位付け
MCP 対応
ナレッジグラフのMCP サーバーが必要です。記憶検索ツールでエンティティを探し、グラフ上の関係をたどってコンテキストを広げます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill memory-fabricインストール後、Claude Code で/memory-fabricを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
test-cases.jsonreferences/entity-extraction.mdquery-merging.mdrules/_sections.mdgraph-consistency.mdstale-node-detection.md詳細
Memory Fabric - グラフオーケストレーション
エンティティ抽出、クエリ解析、重複排除、相互参照によるブーストのために、mcp__memory__* を介してナレッジグラフをオーケストレーションします。
概要
- ナレッジグラフからメモリを包括的に取得
- グラフストレージ内のエンティティを相互参照
- 関連するメモリを見落とさないようにする
- グラフクエリから統合されたコンテキストを構築
アーキテクチャの概要
Memory Fabric Layer
┌─────────────┐ ┌──────────────┐
│Query Parser │ │Query Executor│
└──────┬──────┘ └──────┬───────┘
└───────┬───────┘
┌──────────────┴─────────────┐
│Graph Query Dispatch │
└──────────────┬─────────────┘
┌──────────────┴─────────────┐
│mcp__memory__* │
│(Knowledge Graph) │
└──────────────┬─────────────┘
┌──────────────┴─────────────┐
│Result Normalizer │
└──────────────┬─────────────┘
┌──────────────┴─────────────┐
│Deduplication Engine │
│(>85% sim) │
└──────────────┬─────────────┘
┌──────────────┴─────────────┐
│Cross-Reference Booster │
└──────────────┬─────────────┘
┌──────────────┴─────────────┐
│Final Ranking: recency × │
│relevance × source_authority│
└────────────────────────────┘
統合検索ワークフロー
ステップ 1:クエリを解析する
自然言語から検索意図とエンティティのヒントを抽出します。
Input: "What pagination approach did database-engineer recommend?"
Parsed:
- query: "pagination approach recommend"
- entity_hints: ["database-engineer", "pagination"]
- intent: "decision" or "pattern"
ステップ 2:グラフクエリを実行する
グラフをクエリする(エンティティ検索):
mcp__memory__search_nodes({
query: "pagination database-engineer"
})
ステップ 3:結果を正規化する
結果を共通形式に変換します。
{
"id": "graph:original_id",
"text": "content text",
"source": "graph",
"timestamp": "ISO8601",
"relevance": 0.0-1.0,
"entities": ["entity1", "entity2"],
"metadata": {}
}
ステップ 4:重複を排除する(類似度 >85%)
2 つの結果のテキスト類似度が >85% の場合:
- 関連度スコアが高い方を残す
- メタデータを統合する
- 権威性を高めるため、「cross-validated」としてマークする
ステップ 5:相互参照によるブースト
結果に、グラフの別の場所に存在するエンティティが含まれている場合:
- 関連度スコアを 1.2 倍にする
- グラフの関係性を結果のメタデータに追加する
ステップ 6:最終ランキング
スコア = recency_factor × relevance × source_authority
| 要素 | 重み | 説明 |
|---|---|---|
| recency | 0.3 | 新しいメモリほど上位にランクされます |
| relevance | 0.5 | 意味的な一致度 |
| source_authority | 0.2 | グラフエンティティによるブースト、相互検証によるブースト |
結果の形式
{
"query": "original query",
"total_results": 4,
"sources": {
"graph": 4
},
"results": [
{
"id": "graph:cursor-pagination",
"text": "Use cursor-based pagination for scalability",
"score": 0.92,
"source": "graph",
"timestamp": "2026-01-15T10:00:00Z",
"entities": ["cursor-pagination", "database-engineer"],
"graph_relations": [
{ "from": "database-engineer", "relation": "recommends", "to": "cursor-pagination" }
]
}
]
}
エンティティ抽出
Memory Fabric は、グラフストレージに保存するために自然言語からエンティティを抽出します。
Input: "database-engineer uses pgvector for RAG applications"
Extracted:
- Entities:
- { name: "database-engineer", type: "agent" }
- { name: "pgvector", type: "technology" }
- { name: "RAG", type: "pattern" }
- Relations:
- { from: "database-engineer", relation: "uses", to: "pgvector" }
- { from: "pgvector", relation: "used_for", to: "RAG" }
詳細な抽出パターンについては、Read("references/entity-extraction.md") を読み込んでください。
グラフ関係のトラバーサル
Memory Fabric は、複雑な関係性のクエリに対応するマルチホップのグラフトラバーサルをサポートしています。
例:マルチホップクエリ
Query: "What did database-engineer recommend about pagination?"
1. Search for "database-engineer pagination"
→ Find entity: "database-engineer recommends cursor-pagination"
2. Traverse related entities (depth 2)
→ Traverse: database-engineer → recommends → cursor-pagination
→ Find: "cursor-pagination uses offset-based approach"
3. Return results with relationship context
グラフメモリとの統合
Memory Fabric は、エンティティの関係性にナレッジグラフを使用します。
mcp__memory__search_nodesによるグラフ検索で、一致するエンティティを見つけます- グラフトラバーサルで、エンティティ間の関係性を通じてコンテキストを拡張します
- エンティティが一致した場合、相互参照によって関連度を高めます
統合ポイント
memory スキルとの連携
メモリ検索の実行時に、必要に応じて Memory Fabric を使用して統合された結果を取得できます。
フックとの連携
prompt/memory-fabric-context.sh- セッション開始時に統合されたコンテキストを注入stop/memory-fabric-sync.sh- セッション終了時にエンティティをグラフに同期
設定
# Environment variables
MEMORY_FABRIC_DEDUP_THRESHOLD=0.85 # Similarity threshold for merging
MEMORY_FABRIC_BOOST_FACTOR=1.2 # Cross-reference boost multiplier
MEMORY_FABRIC_MAX_RESULTS=20 # Max results per source
MCP の要件
必須: ナレッジグラフの MCP サーバー:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@anthropic/memory-mcp-server"]
}
}
}
エラー処理
| シナリオ | 動作 |
|---|---|
| グラフを利用できない | エラー - グラフが必要です |
| クエリが空 | グラフから最近のメモリを返します |
関連スキル
ork:memory- ユーザー向けのメモリ操作(検索、読み込み、同期、可視化)ork:remember- ユーザー向けのメモリ保存caching- Fabric を使用できるキャッシュレイヤー
主な決定事項
| 決定事項 | 選択 | 根拠 |
|---|---|---|
| 重複判定のしきい値 | 85% | 重複の検出とニュアンスの保持のバランスを取ります |
| 並列クエリ | 常に実行 | 両方のソースは独立しており、遅延を低減できます |
| 相互参照のブースト | 1.2 倍 | 検証済みの情報はより信頼できますが、支配的にはしません |
| ランキングの重み | 0.3/0.5/0.2 | 関連度を最優先し、次に新しさを重視します |