Show HN:Memharness – AI代理的雙時態記憶,單個SQLite文件
Memharness 是一個開源的 AI 代理記憶庫,基於 SQLite 實現雙時態、可溯源的事實存儲。它支持時間旅行查詢(如“過去某個時刻相信什麼”)、事實修正鏈、來源追溯,並且完全無網絡依賴,適合需要審計和會話獨立性的場景。
Memharness 是一個專為 AI 代理設計的長期記憶庫,採用單個 SQLite 文件存儲雙時態、附帶來源的事實。與大多數將記憶視為字符串集合的方案不同,Memharness 結合了三種關鍵語義:雙時態(事實的世界時間與學習時間分離)、修正鏈(保留歷史記錄而非覆蓋)以及每個事實的完整來源(包括誰、何時、何處)。
這使得代理能夠回答諸如“你三月一號相信什麼?”、“在我糾正你之前你相信什麼?”以及“你為什麼相信這個?”等問題。存儲層是完全確定性的,不依賴任何 LLM 或網絡調用;所有數據均通過標準的 MCP 協議暴露給 AI 代理。
Memharness 並非適用於所有場景。如果代理的記憶規模小且穩定,能輕鬆放入上下文窗口,那麼使用 CLAUDE.md 文件或直接填充歷史記錄更為簡單。但當歷史數據超出上下文窗口、需要審計追蹤、需要按來源批量刪除(如 GDPR 要求)或者信念隨時間變化時,Memharness 的價值便得以體現。
與同類產品(如 mem0、Zep、Letta 等)相比,Memharness 的獨特優勢在於其確定性、可審計的存儲層,而非自動事實提取服務。它不提供自動從對話中提取事實的功能,而是在寫入路徑上保持無模型狀態,由客户端決定什麼值得記憶。
項目以 npm 包形式發佈,包含核心 TypeScript 庫(@memharness/core)、MCP 服務器(@memharness/mcp)以及可選的嵌入模型(@memharness/embed)。快速集成只需一個命令,例如在 Claude Code 中添加 MCP 服務器。首次運行時,記憶文件自動在 ~/.memharness/memory.db 創建。
Memharness 提供了七個核心工具:remember(存儲原子事實)、recall(按時間點查詢當前信念)、revise(修正信念並保留歷史)、diff(查看時間範圍內的變更)、why(查看事實的完整來源和修正鏈)、forget(按 ID 或來源刪除)以及 stats(統計信息)。
在開發方面,項目強調正確性:通過隨機化屬性測試(每次提交運行 10,000 個隨機序列)確保 recall 的 as_of 查詢與事件日誌重放結果一致。基準測試顯示,在 10 萬條事實規模下,大部分查詢的 p95 響應時間約 1.3 毫秒。
Memharness 採用 Apache-2.0 許可證,完全開源。