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(支持事务),并持续活跃开发。