import CodeBlock from ‘../../../components/CodeBlock.astro’; import CopyButton from ‘../../../components/CopyButton.tsx’;
知識圖譜 (Knowledge Graph)
MemPalace 的知識圖譜將所有 Drawers 互相連接,形成一個連結的網絡。這讓記憶不再是孤立的碎片,而是可以相互參照、追蹤關聯的知識網。
知識圖譜核心概念
知識圖譜由以下三個元素組成:
Drawer (節點) ── Link (邊) ── Drawer (節點)
Link 類型:
├── references_to (來源引用)
├── relates_to (相關性)
└── extends_from (擴展關係)
Drawer 作為節點 (Nodes)
每個 Drawer 都是圖譜中的一個節點,包含:
- 自身內容(原文或見解)
- 元數據(標籤、時間戳記、來源)
- 關聯 Links(出入度)
Link 作為邊 (Edges)
Drawer 之間通過 Link 連接,形成關聯網絡:
# drawer-001.md
type: reference
title: "Claude Anthropic 4.5 模型能力概覽"
source:
url: "https://docs.anthropic.com/claude-4-5"
links:
- id: "ref-001"
type: "references_to"
target: "drawer-005"
reason: "引用 Benchmark Report 中的性能數據"
- id: "rel-001"
type: "relates_to"
target: "drawer-007"
reason: "與 GPT-4o 對比相關"
Link 類型與使用情境
| Link 類型 | 使用情境 | 權重 |
|---|---|---|
| references_to | 已記錄的 View 記憶(舊會話內容)会自动被索引 | 最高 |
| relates_to | 手动关联相关概念或議題 | 高 |
| extends_from | 記憶基於另一個記憶進行擴展 | 中 |
references_to(來源引用)
當您在會話中查看 View 會按【記憶化 (M)】時,系統會自動將當前會話內容的 Drawer 鏈接到被查看的 View 記憶:
# View 記憶(舊會話)
drawer-100:
type: view
title: "資源最佳化方案設計 (2026-01-15)"
content: |-
使用 CDN + 圖片壓縮減少 40% 傳輸流量
...
# 新會話中的 Drawer(引用 View 記憶)
drawer-250:
type: observation
title: "實施後成效分析"
content: |-
實施資源最佳化後,首頁載入時間從 3.2s 降至 1.8s
links:
- type: "references_to"
target: "drawer-100"
reason: "基於 2026-01-15 的設計方案實施"
relates_to(相關性)
用於手動關聯相關但非直接引用的 Drawers:
# drawer-010: API 認證機制設計
links:
- type: "relates_to"
target: "drawer-015"
reason: "都涉及安全設計(認證 vs 加密)"
- type: "relates_to"
target: "drawer-018"
reason: "都涉及 API 設計(認證 vs 版本管理)"
extends_from(擴展關係)
當一記憶是另一記憶的擴展或補充時使用:
# drawer-020: 基礎架構設計
# drawer-025: 擴展架構(含高可用性擴展)
links:
- type: "extends_from"
target: "drawer-020"
reason: "在基礎架構上添加負載均衡與災難恢復設計"
知識圖譜的效能優勢
優勢 1:高相關性檢索
知識圖譜讓檢索不只是文本匹配,還考慮關聯權重:
# 查詢「API 設計」
$ mempalace search --query "API 設計"
# 圖譜加權結果(簡化示例)
Drawer: API 認證機制設計 # 文本匹配 1000
Drawer: API 版本管理策略 # 文本匹配 900
Drawer: 安全設計最佳實踐 # 文本匹配 200 → 750(關聯 +550)
系統會:
- 計算文本匹配分數
- 加上 graph 關聯權重(相關性高的 Drawer 权重增加)
- 加上 freshness 權重(近期的 Drawers 权重略高)
優勢 2:連結記憶不會孤立
當您刪除一個 Drawer 時,知識圖譜會:
- 標記相關 Links 為 broken
- 在檢索時提示「相關記憶已被刪除」
- 避免因孤立 Memory 找不到相關資訊
# drawer-050: 被刪除的舊記憶
# 相關 Drawers 中的 Links 標記為:
links:
- type: "relates_to"
target: "drawer-050"
status: "broken"
reason: "該記憶已被刪除 (2026-07-16)"
優勢 3:追蹤知識演變
知識圖譜讓您可以追蹤一個概念如何隨時間演變:
# 查看某個 Drawer 的關聯樹
$ mempalace graph --root "drawer-020" --depth 2
Drawer: 基礎架構設計
extends_from → drawer-025: 擴展架構(高可用性)
extends_from → drawer-030: 多區域部署設計
relates_to → drawer-015: 安全設計(認證機制)
如何維護知識圖譜
手动添加 Link
# 關聯兩個 Drawers
mempalace link --source "drawer-020" \
--target "drawer-015" \
--type "relates_to" \
--reason "都涉及安全設計(認證 vs 加密)"
# 添加到現有 Drawer
mempalace edit --drawer "drawer-025" \
--add-link '{
"type": "extends_from",
"target": "drawer-020",
"reason": "在基礎架構上添加災難恢復設計"
}'
清理 Broken Links
# 列出所有 broken links
mempalace graph --broken
# 自動清理 broken links(刪除被標記的連接)
mempalace graph --cleanup-broken
導出圖譜視覺化
MemPalace 支援導出知識圖譜為可視化格式:
# 導出為 Mermaid 與 YAML(Mermaid 則可渲染成圖)
mempalace graph --export --format mermaid+yaml,dot,graphml --output knowledge_graph
輸出示例(Mermaid 語法):
graph TD
drawer001["Claude Anthropic 4.5 模型能力概覽 (R)"]
drawer005["Benchmark Report (R)"]
drawer007["GPT-4o 對比 (R)"]
drawer001 -->|"references_to"| drawer005
drawer001 -->|"relates_to"| drawer007
知識圖譜的最佳實踐
✅ 定期清理 broken links:每月檢查並清理失效關聯
✅ 使用明確的 reason:Link reason 應解釋為何關聯(原則/共同概念/擴展方向)
✅ 平衡關聯密度:每個 Drawer 的 Links 數量 3-7 個為佳
✅ 定期導出視覺化:每月生成圖譜視覺化,快速識別孤立記憶
❌ 避免不明確的 reason:使用「相關議題」而非「都涉及設計」
❌ 避免過度關聯:每個 Drawer 關聯 20+ 個其他 Drawers 會降低信噪比
❌ 避免循環關聯:A 關聯 B、B 關聯 A、A 復關聯 B 的冗餘結構
❌ 避免 stale links:參考文件更新後,未同步更新相關 Links
知識圖譜與驗收指標
在 OpenSpec 變更中,記憶檢索的質量化為以下指標:
| 指標 | 定義 | 目標 |
|---|---|---|
| Precision | 檢索結果的相關性(前 5 個結果中相關的比例) | ≥ 0.9 |
| Recall | 相關記憶被檢索到的比例(所有相關記憶被覆蓋的比例) | ≥ 0.85 |
| Latency | 檢索響應時間(毫秒) | ≤ 250 |
| F-Score | Precision 與 Recall 的調和平均數 | ≥ 0.87 |
知識圖譜是提升 Precision 的關鍵:通過關聯權重排序,使高相關性的記憶浮現。
下一步
在掌握知識圖譜後,下一部分將介紹 MemPalace 的 36 個 MCP 工具,以及如何透過指令行與 IDE 整合進行記憶檢索與管理。