概述
MemPalace v3.10.0(2026-09-16,“lighter ways in for agents”)的核心命題:讓 agent 用更低的 schema 成本連上同一座宮殿。三個支柱——mempalace-light-mcp(3 工具 + Palace Query Language)、host:harness:project 身分規則、可選 native exact-vector search;另外新安裝的組態目錄遵循 XDG。
mempalace-light-mcp:3 個工具涵蓋整座宮殿(#2412)
問題
完整版 MCP server 有 45 個工具,schema 總計 41.6 KB。每一個 agent session 都要全額載入這份 schema——對「只想搜尋與協調」的輕量 agent 來說是純粹的 overhead。
解法
新的 mempalace-light-mcp 用三個工具覆蓋相同的能力面:
| 工具 | 涵蓋 |
|---|---|
palace_query |
搜尋、taxonomy、KG、graph、diary、drawers、mining、tunnels |
palace_exec |
寫入與採礦操作 |
palace_coordinate |
RFC 003 協調(events、tasks、ack) |
查詢用一行 Palace Query Language(PQL)字串:
FIND "oauth" IN backend/auth LIMIT 5
或結構化 dict。schema 約 10.6 KB——完整版的四分之一。
安全性質
- 寫入走與完整版相同的 sanitizing handlers——drawer 文字維持 verbatim
- 搜尋排名不變
- stdio 是 hub-first(優先重用共用 Hub)
--read-only拒絕palace_exec與palace_coordinate
註冊方式
與完整版並存,不是取代:
claude mcp add mempalace-light -- mempalace-light-mcp
身分規則:host:harness:project(#2508)
mempalace rules 的身分模型從單一 --agent 改為三元身分:
--host --harness --project
同一個 agent 框架(harness)在不同機器(host)或不同專案(project)下,如今是不同的身分——fleet 裡的權限與規則可以精確到「這台機器上、這個框架、這個專案」。
配套:--mcp full|light 指定規則要命名哪個工具面;logstream watch --agent 的 state file 預設路徑對 Windows 的 host:harness:project 身分做了 sanitization,不需要私有路徑轉換。
可選 Native Exact-Vector Search
新增 standalone native vector CLI 與可選 native wheels:
- GitHub releases 附 native wheels 與平台執行檔
- CLI 接受 JSON embedding vectors(
--vector或 stdin)——不嵌入文字、不需要 Python - Native extension 載入為 collection-scoped、釋放 GIL;本地與外部寫入都會 invalidate native cache
- 複雜 filter 或無 native extension 時 fallback 回 Python
- NumPy top-k:快取向量範數、排序前先 partition,保留 row-order ties
唯讀搜尋不再與 Writer 競爭
searcher.py 與 _open_search_collection 改以 read_only=True 開啟 collection——SQLite WAL reader mode 連線、不嘗試 schema 初始化、不碰 writer lease 鎖。CLI 與 agent 的搜尋可以與背景 MCP server 或寫入工作真正並行。
組態遵循 XDG(#148)
新安裝的組態解析順序:
$MEMPALACE_CONFIG_DIR- 既有
~/.mempalace(含config.json/people_map.json/palace/chroma.sqlite3) $XDG_CONFIG_HOME/mempalace~/.config/mempalace
既有安裝維持 ~/.mempalace 不變;palace_path 預設 <config_dir>/palace。
其他新能力
- CLI 寫入遵循 daemon write-routing policy:
MEMPALACE_CLI_WRITE_ROUTING或write_routing.cli設定direct/prefer/require(預設 direct,不變);一旦提交給 daemon 就不會在錯誤時直接重跑 - pgvector fleet 共用 tables:
pgvector_shared_namespace讓不同 palace path 的節點讀寫同一組 tables - Hybrid-rank 權重可調:vector / BM25 預設 0.6 / 0.4
- Drawers 追蹤
last_modified:filed_at維持建立時間 - 搜尋結果標明日期來源:
content_date_source(filename / frontmatter / body / mtime / unknown),在 mine 時記錄、不為舊 drawer 重建 mempalace_kg_timeline支援分頁:硬編碼前 100 條上限移除- Logstream 無 cursor 時預設回最新事件
- DeepSeek Harness plugin(
.dsh-plugin/)
對既有使用者的影響
| 情境 | 影響 |
|---|---|
| 既有安裝 | 目錄不變,無需遷移 |
用 --agent 的自動化腳本 |
需遷移到 --host/--harness/--project |
| 想省 schema 記憶體的 agent | 加掛 light server(與完整版並存) |
學習重點
- 「同一後座、兩個工具面」是 token 經濟學的實作:45 工具的 schema 每 session 全額載入;PQL 把它壓到四分之一,而且不改寫入路徑——省 token 不需要換後端。
read_only=True是 WAL 讀寫並行的正確姿勢:SQLite WAL 模式下,讀者本來就不該碰 schema 初始化與 writer 鎖;明確宣告唯讀意圖,資料庫才能給你並行。
來源:v3.10.0