概述
MemPalace v3.11.0(2026-10-14 發布,79 個 merged PRs)主軸:palace audit 與引導修復、EmbeddingGemma 2 opt-in embedder 與 embedder identity、原生媒體檢索、大型 palace 效能。安裝 pip install -U mempalace==3.11.0。
palace audit 與引導修復(#2576)
mempalace audit 對五層(rooms/wings/tunnels/hallways/KG)評分:
- 支援
--json、--fail-under——可進 cron/CI。 - Read-only:可對服役中的 palace 直接執行。
引導修復全 family:
mempalace instructions audit- rooms propose/apply
- wings split(machine-level transcript wing → per-project wing)
- tunnels propose/prune
- hallways –rebuild/–prune-spellings
- kg normalize
全部 dry run 直到 --yes,中斷可續;LLM 步驟預設本地 endpoint、需 --accept-external-llm 才用外部 LLM。
EmbeddingGemma 2 opt-in embedder(#2694/#2717)
- 設定
embedding_model: embeddinggemma2+ 安裝mempalace[embeddinggemma2]或[multimodal]。 - 需 Python 3.10+/PyTorch;CUDA/MPS/CPU;768/512/256/128 維;CUDA OOM 自動半 batch。
原生媒體檢索:內建 media source adapter 把原始檔 embed 進獨立 mempalace_assets collection;opt-in 的 CLI/MCP media search 回傳 typed local asset references(file-level 檢索為實驗性)。
embedder identity:mismatch 時 fail closed(#2717,修 #2709)
每個 palace 記錄建立它的 embedder;所有寫入路徑在 mismatch 時 fail closed:
repair rebuild-index與--mode from-sqlite重建後再次記錄。- MCP 拒絕退回 Chroma 預設 embedder。
- 既有 palace 不 opt-in 就不受影響;未知 embedding_model 保 MiniLM fallback,近似名稱拒絕。
升級注意(兩件事)
- 首次對話 mine 會 re-mine:exchange chunker 不再丟文字(#2591),3.11 之前的 conversation drawers 視為 stale 重新 chunk+embed。百萬 drawers 約 40 分~3 小時;可
mempalace mine <dir> --mode convos --limit 200分批;中斷可續。 - Palace 拒絕以不同 embedding model 開啟:訊息會教你把 embedding_model 設回原模型,或
repair rebuild-index重嵌。
效能
- SQLite 後端 metadata-only 更新約 6000 倍快。
- 狀態/搜尋/wake-up 在大型 palace 保持回應:count caches 不再過期即丟(8-12 秒 → 約 1ms @360k drawers);MCP server 不再每次呼叫重載向量索引;wake-up 從 SQLite 讀;mining 不再二次方 paging(#2593)。
- Diary/單 drawer 查詢讀 SQLite(#2650)。
安全、移除與修正
- ChromaDB telemetry 明確停用(GHSA-8h77);Pillow 12.3.0(Python 3.10+;3.9 停在 11.3.0 有未修 advisory)與 chromadb 1.5.9;SECURITY.md 警告勿暴露 Chroma HTTP server;read-only MCP 工具標
annotations.readOnlyHint(#2610/#2640)。 - 移除
EntityRegistry.research()/confirm_research()(無人使用的 opt-in Wikipedia lookup;wiki_cache 仍被lookup()讀;GHSA-mrj5)。 - 修正節選:
mempalace_reconnect等 mine(10 秒後 MineInProgress);event_list/event_wait 不因 from_agent 遮蔽他人請求(#2616);sync –apply 不刪仍在磁碟的 drawers(#2368/#2564);stdio MCP servers 保持回應(#2534/#2555/#2557)。
既有使用者影響
預設行為不變(新 embedder 與媒體檢索皆 opt-in);升級後首次 mine 會 re-mine 對話 drawers(大 palace 需規劃時段);以非預設 embedding model 建立的 palace 升級前先確認 embedding_model 設定。
學習重點
「palace 記錄自己的 embedder 並在 mismatch 時 fail closed」是資料層的身分契約——同一向量空間混用兩個 embedder 會靜默毀掉檢索品質,寧可拒開也要守住。audit 的 read-only 設計也值得借鑑:診斷永遠可以對服役中系統跑,修復才需要乾跑確認。