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(支持事務),並持續活躍開發。