import CodeBlock from ‘../../../components/CodeBlock.astro’; import CopyButton from ‘../../../components/CopyButton.tsx’;
mempalace link
建立或移除 Drawers 之間的連結,關聯相關記憶以增強知識圖譜。
指令
# 建立連結
mempalace link --source <drawer-id> --target <drawer-id> --type <link-type> --reason <reason>
# 移除連結
mempalace unlink --source <drawer-id> --target <drawer-id>
# 列出連結
mempalace list-links [--drawer <drawer-id>] [--type <link-type>]
選項
| 選項 | 描述 | 預設值 |
|---|---|---|
| –source | 來源 Drawer ID | 無 |
| –target | 目標 Drawer ID | 無 |
| –type | Link 類型(references_to/relates_to/extends_from) | 無 |
| –reason | 連結原因(為何關聯) | 無 |
| –weight | Link 權重(0-1) | 1.0 |
| –bidirectional | 建立雙向連結 | false |
Link 類型
| 類型 | 使用情境 | 權重 |
|---|---|---|
| references_to | 已記錄的 View 記憶(舊會話內容)會自動被索引 | 最高 |
| relates_to | 手動關聯相關概念或議題 | 高 |
| extends_from | 記憶基於另一個記憶進行擴展 | 中 |
範例
建立單向連結
# 關聯兩個相關的 Drawers
mempalace link \
--source "d:/Repo/myproject/database-schema/drawer-001" \
--target "d:/Repo/myproject/database-schema/drawer-002" \
--type "relates_to" \
--reason "都 PostgreSQL 性能優化相關"
建立雙向連結
# 建立 A 關聯 B,且 B 也關聯 A 的雙向連結
mempalace link \
--source "d:/Repo/myproject/api-design/drawer-010" \
--target "d:/Repo/myproject/security/drawer-015" \
--type "relates_to" \
--reason "都涉及安全設計(認證 vs 加密)" \
--bidirectional
建立擴展連結
# 表示 drawer-025 是 drawer-020 的擴展
mempalace link \
--source "d:/Repo/myproject/architecture/drawer-025" \
--target "d:/Repo/myproject/architecture/drawer-020" \
--type "extends_from" \
--reason "在基礎架構上添加災難恢復設計"
自定義權重
# 降低該連結的權重(例如,弱相關性)
mempalace link \
--source "drawer-030" \
--target "drawer-031" \
--type "relates_to" \
--reason "弱相關性,僅提供上下文" \
--weight 0.5
移除連結
# 移除單向連結
mempalace unlink \
--source "drawer-010" \
--target "drawer-015"
# 移除雙向連結(兩個方向都移除)
mempalace unlink \
--source "drawer-010" \
--target "drawer-015" \
--bidirectional
列出連結
# 列出某個 Drawer 的所有連結
mempalace list-links --drawer "drawer-010"
Wing: d:/Repo/myproject
Room: api-design
Drawer: API 認證機制設計
Outgoing Links:
[relates_to] → drawer-015 (安全設計 - 加密機制)
Reason: 都涉及安全設計(認證 vs 加密)
Weight: 1.0
Incoming Links:
[extends_from] ← drawer-035 (權限設計 - 角色與權限模型)
Reason: 在認證機制上添加角色權限管理
Weight: 1.0
# 列出特定類型的所有連結
mempalace list-links --type "extends_from"
[extends_from] drawer-025 → drawer-020
Reason: 在基礎架構上添加災難恢復設計
Weight: 1.0
[extends_from] drawer-035 → drawer-010
Reason: 在認證機制上添加角色權限管理
Weight: 1.0
連結檢視
您也可以直接在 Drawer 中檢視 Links:
# 檢視 Drawer 內容 (含 Links)
mempalace view --drawer "drawer-010"
Type: observation
Title: API 認證機制設計
Content: ...
Sources: ...
Links:
- ID: rel-001
Type: relates_to
Target: drawer-015
Reason: 都涉及安全設計(認證 vs 加密)
Weight: 1.0
批量操作
批量連結
# 連結到多個目標 Drawers
mempalace link \
--source "drawer-020" \
--targets "drawer-015,drawer-025,drawer-030" \
--type "relates_to" \
--reason "都涉及架構設計的不同面向"
# 注意:需要使用 --targets(複數形)
批量移除連結
# 移除某個 Drawer 的所有連結
mempalace link \
--source "drawer-020" \
--remove-all
# 移除某個 Drawer 的特定類型連結
mempalace link \
--source "drawer-020" \
--remove-type "extends_from"
連結驗證
# 檢查是否存在連結
mempalace link --check \
--source "drawer-010" \
--target "drawer-015"
✅ Link exists (type: relates_to)
# 檢查連結是否存在(不存在時)
mempalace link --check \
--source "drawer-010" \
--target "drawer-020"
❌ Link not found
視覺化知識圖譜
# 導出 Mermaid 圖譜 (可用於渲染視覺化圖)
mempalace graph --export --format mermaid --output graph.mmd
# 導出 DOT (Graphviz) 格式
mempalace graph --export --format dot --output graph.dot
# 導出 GraphML (Gephi 等工具支援)
mempalace graph --export --format graphml --output graph.graphml
錯誤處理
# 來源或目標 Drawer 不存在
$ mempalace link --source "missing-001" --target "drawer-002" --type "relates_to"
✗ Source drawer not found: missing-001
# Link 類型無效
$ mempalace link --source "drawer-010" --target "drawer-015" --type "invalid"
✗ Invalid link type. Valid types: references_to, relates_to, extends_from
# 該連結已存在
$ mempalace link --source "drawer-010" --target "drawer-015" --type "relates_to"
✗ Link already exists. Use --force to update.
最佳實踐
✅ 連結原因具體:使用「都涉及安全設計(認證 vs 加密)」而非「相關議題」
✅ 平衡連結密度:每個 Drawer 的 Links 數量 3-7 個為佳
✅ 定期清理失效連結:每月檢查並清理 broken links
✅ 弱相關連結使用較低權重:權重 0.5 或 0.7
❌ 避免循環連結:A 關聯 B、B 關聯 A、A 復關聯 B 的冗餘結構
❌ 避免過度連結:每個 Drawer 關聯 20+ 個其他 Drawers 會降低信噪比
❌ 避免不明確的連結:使用明確原因而非「都涉及設計」
相關指令
mempalace graph- 檢視與導出知識圖譜mempalace edit- 在 Drawer 中編輯 Linksmempalace list-links- 列出連結