mempalace:從 README 拆解 逐字記憶與語意檢索
最佳基準的開源人工智慧儲存系統。而且它是免費的。
秒懂
- 它是什麼?
- The best-benchmarked open-source AI memory system. And it's free. 本文聚焦 逐字記憶與語意檢索與仿冒網站警告與來源,並標出可核對的限制。
- 適合誰用?
- 適合需要直接研究 mempalace 並能依 README 設定環境的人;不適合把倉庫描述、統計或自報數字當成既定保證的場景。採用前先針對 MemPalace/mempalace 的 README 所列入口執行最小流程,記錄實際版本、設定鍵與輸出,再決定是否納入正式工作流。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 Python(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
逐字記憶與語意檢索
本節只談 逐字記憶與語意檢索,對 MemPalace/mempalace 的判斷以第 1 個觀察角度展開。(專案觀察 1-1)
MemPalace 是一個以 Python 撰寫的 AI 記憶系統,將對話歷史以逐字文字儲存,並透過語意搜尋檢索。README 明確說明它不會做摘要、抽取或改寫。索引是有結構的:人物和專案成為 wings,主題成為 rooms,原始內容存放在 drawers 中,因此搜尋可以在語料庫的某個範圍內進行,而不是對扁平語料庫整體檢索。檢索層是可插拔的,介面定義在 mempalace/backends/base.py 中。除非使用者選擇開啟,否則沒有任何資料離開本機。(專案觀察 1-2)
在 mempalace 的語境中,這個判斷要連同 逐字記憶與語意檢索 一起閱讀。README 明確寫出的專案記號是 MemPalace/mempalace;未被 README 指定的執行緒、效能、安全保證或相容性,不在本文中補成既定能力。核對時可回到 MemPalace/mempalace 的 README,觀察對應命令、路徑、版本或輸出,並把結果與本文的事實描述分開。這樣讀者能知道第 1 節的事實邊界。(專案觀察 1-3)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 1 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 1-4)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 11 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 1-5)
仿冒網站警告與來源
本節只談 仿冒網站警告與來源,對 MemPalace/mempalace 的判斷以第 2 個觀察角度展開。(專案觀察 2-1)
README 開頭是仿冒網站警告。它指出唯一官方來源是本 GitHub 倉庫、PyPI 上的 mempalace 套件以及 mempalaceofficial.com 上的文件,任何其他網域(包括 .tech、.net 或其他 .com 變體)都是仿冒者,可能散布惡意軟體,詳情見 docs/HISTORY.md。另一則提示警告,Claude Code 工作階段在沒有接上自動儲存鉤子的情況下會在 30 天後過期,並指向一份保留設定檢查清單。(專案觀察 2-2)
在 mempalace 的語境中,這個判斷要連同 仿冒網站警告與來源 一起閱讀。README 明確寫出的專案記號是 MemPalace/mempalace;未被 README 指定的執行緒、效能、安全保證或相容性,不在本文中補成既定能力。核對時可回到 MemPalace/mempalace 的 README,觀察對應命令、路徑、版本或輸出,並把結果與本文的事實描述分開。這樣讀者能知道第 2 節的事實邊界。(專案觀察 2-3)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 2 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 2-4)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 12 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 2-5)
隔離環境安裝
本節只談 隔離環境安裝,對 MemPalace/mempalace 的判斷以第 3 個觀察角度展開。(專案觀察 3-1)
安裝以隔離環境為導向。README 推薦使用 uv tool install mempalace,它會把 mempalace CLI 放進自己的環境並加入 PATH;pipx 的用法相同。一般 pip 只在啟用的虛擬環境中使用,以避免 Debian、Ubuntu 和 Homebrew Python 上的 PEP 668 錯誤,並防止 chromadb、numpy、grpcio 等依賴與全域 site-packages 衝突。Docker 映像可以在沒有本機 Python 工具鏈的情況下執行 MCP 伺服器或 CLI;所有內容持久化在 /data 下,因此需要掛載磁碟區。映像預設包含 extract 和 spellcheck 附加元件,另外還有用 Dockerfile.gpu 建置的 GPU 版本,用於 CUDA 加速的嵌入計算。(專案觀察 3-2)
在 mempalace 的語境中,這個判斷要連同 隔離環境安裝 一起閱讀。README 明確寫出的專案記號是 MemPalace/mempalace;未被 README 指定的執行緒、效能、安全保證或相容性,不在本文中補成既定能力。核對時可回到 MemPalace/mempalace 的 README,觀察對應命令、路徑、版本或輸出,並把結果與本文的事實描述分開。這樣讀者能知道第 3 節的事實邊界。(專案觀察 3-3)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 3 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 3-4)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 13 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 3-5)
五種儲存後端契約
本節只談 五種儲存後端契約,對 MemPalace/mempalace 的判斷以第 4 個觀察角度展開。(專案觀察 4-1)
可插拔契約後面是五個儲存後端。ChromaDB 是預設後端,無需設定。sqlite_exact 也是內建的,提供精確的本機搜尋。Milvus 和 pgvector 作為附加元件安裝(mempalace[milvus] 和 mempalace[pgvector]),而 qdrant 是內建的,透過 REST 作為伺服器執行。README 中的表格列出了每個後端的命名空間和詞法支援情況,選擇方式包括 --backend 參數、MEMPALACE_BACKEND 環境變數或 config.json 中的 backend 鍵。所有非預設後端都是選擇啟用的。(專案觀察 4-2)
在 mempalace 的語境中,這個判斷要連同 五種儲存後端契約 一起閱讀。README 明確寫出的專案記號是 MemPalace/mempalace;未被 README 指定的執行緒、效能、安全保證或相容性,不在本文中補成既定能力。核對時可回到 MemPalace/mempalace 的 README,觀察對應命令、路徑、版本或輸出,並把結果與本文的事實描述分開。這樣讀者能知道第 4 節的事實邊界。(專案觀察 4-3)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 4 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 4-4)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 14 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 4-5)
挖掘搜尋與工作階段喚醒
本節只談 挖掘搜尋與工作階段喚醒,對 MemPalace/mempalace 的判斷以第 5 個觀察角度展開。(專案觀察 5-1)
快速開始展示三個命令:mempalace mine 用於攝取專案檔案或 Claude Code 工作階段(帶 --mode convos 和 --wing 進行範圍限定),mempalace search 用於語意查詢,mempalace wake-up 用於為新工作階段載入上下文。MCP 伺服器暴露 36 個工具,涵蓋 palace 讀寫、知識圖譜操作、跨 wing 導覽、drawer 管理和代理日記。Claude Code、Codex CLI 和 Cursor IDE 都有自動儲存鉤子,mempalace sweep 會為每條使用者或助手訊息儲存一個逐字 drawer,具備冪等性和可恢復性。(專案觀察 5-2)
在 mempalace 的語境中,這個判斷要連同 挖掘搜尋與工作階段喚醒 一起閱讀。README 明確寫出的專案記號是 MemPalace/mempalace;未被 README 指定的執行緒、效能、安全保證或相容性,不在本文中補成既定能力。核對時可回到 MemPalace/mempalace 的 README,觀察對應命令、路徑、版本或輸出,並把結果與本文的事實描述分開。這樣讀者能知道第 5 節的事實邊界。(專案觀察 5-3)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 5 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 5-4)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 15 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 5-5)
基準與知識圖譜界線
本節只談 基準與知識圖譜界線,對 MemPalace/mempalace 的判斷以第 6 個觀察角度展開。(專案觀察 6-1)
基準數字可以用 benchmarks/BENCHMARKS.md 中的命令從倉庫重現,逐題結果檔案提交在 benchmarks/results_* 下。在 LongMemEval 上,原始語意搜尋的 R@5 為 96.6%,不需要啟發式規則也不需要 LLM;hybrid v4 管線在 50 道開發題上調參,在保留的 450 道上評測,得分為 98.4%;加入 LLM 重排在全部 500 道上達到至少 99%。LoCoMo 的 R@10 原始為 60.3%,hybrid v5 為 88.9%;ConvoMem 平均召回為 92.9%;MemBench 的 R@5 為 80.3%。README 刻意避免與 Mem0、Mastra、Hindsight、Supermemory 或 Zep 做並列對比,理由是不同資料集上的不同指標無法誠實比較。(專案觀察 6-2)
在 mempalace 的語境中,這個判斷要連同 基準與知識圖譜界線 一起閱讀。README 明確寫出的專案記號是 MemPalace/mempalace;未被 README 指定的執行緒、效能、安全保證或相容性,不在本文中補成既定能力。核對時可回到 MemPalace/mempalace 的 README,觀察對應命令、路徑、版本或輸出,並把結果與本文的事實描述分開。這樣讀者能知道第 6 節的事實邊界。(專案觀察 6-3)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 6 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 6-4)
針對 MemPalace/mempalace,可把這一節拆成幾個可觀察的問題:README 是否列出明確的安裝入口,命令是否指出必要的檔案或服務,輸入與輸出是否能在本機留下紀錄,失敗時是否有版本或設定線索可追。若文件只描述概念,本文就只把它寫成定位,不把概念延伸為承諾。若文件列出命令,測試範圍應限於該命令能證明的結果,例如安裝是否完成、指定資料是否被讀取、回傳格式是否符合說明,或特定工作流是否產生預期檔案。這些觀察都屬於 mempalace 的具體脈絡,不能用倉庫人氣替代。第 16 節也應與其他章節分開記錄,避免把某個環境的成功誤寫成所有平台都相同。(專案觀察 6-5)
編輯結論
適合需要直接研究 mempalace 並能依 README 設定環境的人;不適合把倉庫描述、統計或自報數字當成既定保證的場景。採用前先針對 MemPalace/mempalace 的 README 所列入口執行最小流程,記錄實際版本、設定鍵與輸出,再決定是否納入正式工作流。本文所有判斷都繫於 mempalace 的具體命令與文件,不能移植成其他專案的通用結論。
社群筆記