Theme / v3.9.0

MemPalace

本地優先的 AI 記憶宮殿

指令詳解

mempalace link

建立或移除 Drawers 之間的連結,關聯相關記憶以增強知識圖譜。

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
類型 使用情境 權重
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 中編輯 Links
  • mempalace list-links - 列出連結