Show HN:開源AI記憶工具包,支援大規模擴充套件
Lithium是一個基於PostgreSQL ltree的分層版本化儲存引擎,提供確定性、範圍化的檢索,內建版本控制,零執行時依賴。它透過MCP伺服器與AI工具整合,適用於AI代理記憶、決策跟蹤等場景。
文章情報
要點
- 使用PostgreSQL ltree實現分層版本化儲存,查詢速度優於圖資料庫
- 提供TypeScript API,支援範圍化檢索和內建版本控制
- 包含MCP伺服器,可與Claude等AI工具連線
- 零執行時依賴,利用現有PostgreSQL基礎設施
為什麼重要
這條新聞值得關注,因為使用PostgreSQL ltree實現分層版本化儲存,查詢速度優於圖資料庫。
技術影響
可能影響模型選型、推理成本、產品能力和評測基準。
Lithium是一個開源工具包,專為AI記憶系統設計,旨在解決樹狀資料結構的擴充套件性問題。與依賴圖遍歷的圖資料庫不同,Lithium利用PostgreSQL的ltree擴充套件實現索引支援的子樹查詢,顯著提升查詢速度。它提供了分層版本化儲存,支援範圍化檢索和內建版本控制,零執行時依賴。
為什麼選擇Lithium?
記憶圖在處理樹狀資料時無法擴充套件,圖遍歷成為瓶頸。向量搜尋給出“與X相似”的結果,但你可能需要“X下的所有內容”。PostgreSQL的ltree處理樹查詢速度明顯更快,基於索引的子樹查詢,而非遍歷。Lithium將其封裝在乾淨的TypeScript API中,並內建版本控制。
核心特性
- 分層結構:樹層次結構,而非任意圖
- 查詢速度:ltree索引支援,而非圖遍歷
- 檢索方式:確定性、範圍化,而非模式匹配
- 版本控制:內建、不可變,而非手動覆蓋
- 基礎設施:利用現有PostgreSQL,無需額外服務
包介紹
@lithium-ai/core:零依賴儲存引擎@lithium-ai/postgres:PostgreSQL ltree介面卡@lithium-ai/drizzle:Drizzle ORM介面卡@lithium-ai/mcp:用於AI工具的MCP伺服器
快速開始
需要PostgreSQL並啟用ltree擴充套件。使用Drizzle時,安裝@lithium-ai/core和@lithium-ai/drizzle,然後透過new Lithium(drizzleAdapter(db))初始化。使用原生PostgreSQL時,安裝@lithium-ai/postgres和postgres,傳入連線物件。建立層次結構:lithium.clusters.create({ name: "infra" }),然後新增子叢集和條目,最後透過lithium.getContext({ path: "infra" })進行範圍化檢索。
連線到Claude
透過MCP伺服器,可以將Lithium與Claude Code整合。在伺服器檔案中,設定內容解析器以從自定義表載入實際內容,然後執行serveMcp(lithium)。在Claude Code的配置中新增MCP伺服器條目即可使用。
資料模型
條目是純結構,內容儲存在使用者自己的表中,透過條目版本ID引用。模型包括Cluster(id, parentId, path, name, description)、Entry(id, clusterId)和EntryVersion(id, entryId, version, createdAt)。使用者的內容表透過外部索引鍵引用EntryVersion。
API概覽
- 叢集操作:create、findByPath、list、listDescendantIds(ltree子樹查詢)
- 條目操作:create、update(自動遞增版本)、get、list、listWithLatestVersion
- 上下文操作:getContext(帶可選內容解析器的範圍化檢索)
錯誤處理:所有方法返回Result物件,不丟擲異常。
遷移
Drizzle使用者匯入模式並使用drizzle-kit push;原生SQL使用者執行提供的遷移檔案,需先啟用ltree擴充套件。
路線圖
已完成核心儲存引擎、PostgreSQL介面卡、MCP伺服器、Drizzle介面卡、CI和整合測試。計劃包括事務支援、MCP寫入工具、示例專案及Prisma介面卡。
用例
- AI代理記憶(結構化檢索,範圍化上下文)
- 團隊間決策跟蹤
- 配置版本控制
- 文件層次結構
目前,Lithium已在GitHub上開源,採用MIT許可證,獲得2個星標。專案團隊已釋出v0.0.5(支援事務),並持續活躍開發。