Theme / v3.9.0

MemPalace

本地優先的 AI 記憶宮殿

實戰範例

實戰範例 002:跨會話上下文檢索

透過 MemPalace 會話檔案記錄,在後續會話中檢索之前的討論內容與決策。

實戰範例 002:跨會話上下文檢索

背景

您正在開發 API 網關專案,整個開發過程分為多次會話:

  • 會話 1(2025-07-01):討論 API 網關架構設計
  • 會話 2(2025-07-08):實作 API 認證機制
  • 會話 3(2025-07-15):優化查詢效能

您希望在會話 3中快速檢索會話 1會話 2中的設計決策,以避免重新思考或遺失重要細節。

情境

會話 1(2025-07-01)您討論了 API 網關的架構設計,包括微服務邊界、認證機制、資料庫選型等。
會話 2(2025-07-08)您實作了認證模組,決定使用 JWT 處理認證。
會話 3(2025-07-15)您正在優化查詢效能,但需要回顧:

  1. 當初為什麼選擇 PostgreSQL?
  2. 認證機制如何影響查詢效能?

您想做什麼?

用戶:「能不能幫我檢索之前會話中的設計決策,特別是關於 PostgreSQL 與認證的討論?」

第 1 步:檢索之前的會話記憶

$ mempalace search --query "PostgreSQL 認證" --wing "d:/Repo/api-gateway"

Wing: d:/Repo/api-gateway
  Room: database (2 Drawers)
    [reference] PostgreSQL 關聯數據處理最佳實踐
      File: docs/postgresql-guide.md (lines 50-150)
      Score: 0.942

    [observation] 選用 PostgreSQL 處理關聯數據
      Sources: benchmark-report.md:45-89
      Score: 0.915

  Room: authentication (2 Drawers)
    [reference] JWT 認證最佳實踐
      File: docs/jwt-guide.md (lines 1-80)
      Score: 0.887

    [observation] 使用 JWT 處理 API 認證
      Sources: session-20250708T161500.md:120-145
      Score: 0.876

Results: 4 (Precision: 0.84, Recall: 0.81)
Latency: 230ms

您看到:

  • 有 2 個資料庫相關的 Drawers(PostgreSQL)
  • 有 2 個認證相關的 Drawers(JWT)

第 2 步:檢視 PostgreSQL 設計決策

$ mempalace view --drawer "d:/Repo/api-gateway/database/drawer-004"

Type: observation
Title: 選用 PostgreSQL 處理關聯數據
Content: |
  根據壓力測試,PostgreSQL 在處理複雜關聯查詢時比 MySQL 25%。
  特別是在多表 JOIN(4 表以上)時效能優勢明顯。

Sources:
  - file: "benchmark-report.md"
    lines: ["45-89"]
    reason: "benchmark 數據顯示的效能差異"

Links:
  - type: "relates_to"
    target: "d:/Repo/api-gateway/architecture/drawer-002"
    reason: "都涉及架構設計的不同面向"

您拿到:

  • 當初選擇 PostgreSQL 的原因(壓力測試顯示比 MySQL 快 25%)
  • 來源檔案與行號(benchmark-report.md:45-89)

這告訴您,如果需要詳細數據,應該去查看那份 benchmark 報告。

第 3 步:檢視認證機制設計

$ mempalace view --drawer "d:/Repo/api-gateway/authentication/drawer-010"

Type: observation
Title: 使用 JWT 處理 API 認證
Content: |
  JWT 符合無狀態需求(API 網關不需要維護會話)且易於擴展(可添加 payload 處理跨服務身份)。

Sources:
  - file: "session-20250708T161500.md"
    lines: ["120-145"]
    reason: "會話中決定使用 JWT 的推理過程"

Links:
  - type: "extends_from"
    target: "d:/Repo/api-gateway/architecture/drawer-020"
    reason: "在 API 網關架議上添加認證模組設計"

您拿到:

  • 選擇 JWT 的原因(無狀態需求、易於擴展)
  • 設計相關的連結(extends_from drawer-020,表示認證模組是架議的擴展)
  • 來源會話檔案(session-20250708T161500.md:120-145)

這告訴您,如果需要詳細決策過程,應該去查看那次會話檔案。

第 4 步:檢視該次會話檔案

您可以用 VS Code 或任何文本編輯器打開會話檔案:

# 打開會話檔案檢視詳細討論
code session-20250708T161500.md

Session 檔案內容(節選):

# 會話:API 網關認證機制設計
時間:2025-07-08 16:15 - 18:00

## 對話記錄

(中間省略)

### AI (16:25:30)
> 您有幾個選擇來處理認證:
> 1. JWT:無狀態,適合微服務
> 2. OAuth2:適合第三方登入
> 3. Session:需要維護狀態,但安全性高

(中間省略)

### User (16:45:10)
> 我們選擇 JWT,因為 API 網關需要無狀態,且 JWT 可擴展 payload 處理跨服務身份。

### AI (16:50:00)
> 很好。 JWT 的優點:
> - 無狀態(API 網關不需要維護會話)
> - 跨服務身份(JWT payload 可包含用戶權限)
> - 易於擴展(可添加 claim 處理複雜權限)

(中間省略)

### AI (17:00:00)
> 記錄這個見解嗎? 我會使用 MemPalace 儲存。

### User (17:00:15)
> 好的,請記錄。

(中間省略)

### AI (17:05:00)
> 已記錄到 Palace:
> - Observation: 使用 JWT 處理 API 認證(來源:session-20250708T161500.md:120-145)

(中間省略)

從會話檔案中,您看到:

  • 當時為什麼選擇 JWT(User 直接在會話中告知)
  • 決策過程(AI 分析了 JWT 與其他方案的對比)
  • MemPalace 已經自動記錄(見解已儲存為 Observation)

第 5 步:檢索關聯的架議檔案

因為認證模組是架議的擴展(extends_from),您可以追蹤完整的演變路徑

$ mempalace graph --root "d:/Repo/api-gateway/architecture/drawer-020" --depth 2

Drawer: API 網關架議設計 (drawer-020)
  [extends_from]  drawer-010 (認證模組設計 - JWT)
    [extends_from]  drawer-035 (權限設計 - 角色與權限)
  [relates_to]  drawer-015 (安全設計 - 加密機制)
  [relates_to]  drawer-040 (PostgreSQL 關聯數據處理)

這告訴您,認證機制的設計是從基礎架議演變來的,並且相關於:

  • 權限設計(角色與權限,是在認證基礎上的擴展)
  • 安全設計(加密機制)
  • 資料庫設計(PostgreSQL)

結果

透過 MemPalace,您在會話 3中成功檢索到了:

  1. 會話 1 中的 PostgreSQL 選型原因
  2. 會話 2 中的認證機制設計
  3. 相關連結(認證 → 權限 → 架議 → 資料庫)

這讓您能:

  • 避免重複思考:不需要重新考慮為什麼選擇 PostgreSQL
  • 快速回顧決策過程:透過會話檔案詳細查看當時的討論
  • 追蹤思想演變:從基礎架議到認證,再到權限設計

為什麼能跨會話檢索?

MemPalace 的流程是:

  1. 會話 1:AI 自動記錄見解到 Palace(當您在使用 View 會記憶時會按【記憶化 (M)】)
  2. 會話 2:AI 檢索之前的記憶,直接獲取精確的見解(而非模糊記憶)
  3. 知識圖譜:記憶之間的 Links 讓您能追蹤思想演變

這意味著:

  • 會話之間的上下文是可追蹤、可驗證、可編輯
  • 當您跨會話重新開發時,檢索到的記憶依然是精確的

如何讓 AI 自動記錄?

在會話中,AI 會提示「記憶化 (M)」,該按鈕會將當前會話的見解記錄到 Palace:

(AI 對話中)

### AI (17:00:00)
> 記錄這個見解嗎? 我會使用 MemPalace 儲存。

### User (17:00:15)
> 好的,請記錄。

### AI (17:05:00)
> 已記錄到 Palace:
> - Observation: 使用 JWT 處理 API 認證
> - 來源:session-20250708T161500.md:120-145

如果您使用 Claude Code,AI 會自動在您查看 View 記憶時記錄。

下一步

您現在可以基於之前的設計決策繼續開發:

  1. 檢索更多相關記憶mempalace search --query "效能"
  2. 檢視架議完整連結mempalace graph --root "drawer-020" --depth 3
  3. 基於之前的見解進行優化:不需要重新考慮為什麼選擇技術選型

相關指令

指令 用途
mempalace search 在跨會話中檢索記憶
mempalace view 檢視特定 Drawer 的內容與來源
mempalace graph --root 追蹤思想演變
mempalace list-links 檢視某個 Drawer 的相關連結