Show HN: スケーラブルなAIメモリのためのオープンソースツールキット
LithiumはPostgreSQL ltreeをベースにした階層型バージョン管理ストレージエンジンで、決定論的でスコープ指定された検索、組み込みのバージョニング、ゼロランタイム依存を提供します。MCPサーバーを介してAIツールと統合し、AIエージェントのメモリ、意思決定追跡などのユースケースに適しています。
記事インテリジェンス
要点
- PostgreSQL ltreeを使用した階層型バージョン管理ストレージ、グラフデータベースより高速
- スコープ指定検索と組み込みバージョニングを備えたTypeScript API
- ClaudeなどのAIツールと接続するためのMCPサーバー
- ゼロランタイム依存、既存のPostgreSQLインフラを活用
重要な理由
このニュースが重要なのは、PostgreSQL ltreeを使用した階層型バージョン管理ストレージ、グラフデータベースより高速ためです。
技術的影響
モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。
Lithiumは、AIメモリシステム向けに設計されたオープンソースツールキットで、ツリー構造データのスケーラビリティ問題を解決します。グラフデータベースのようにグラフトラバーサルに依存するのではなく、PostgreSQLのltree拡張機能を利用してインデックスベースのサブツリー検索を実現し、クエリ速度を大幅に向上させます。
なぜLithiumなのか?
メモリグラフはツリー構造データにはスケールしません。グラフトラバーサルがボトルネックになります。ベクトル検索は「Xに類似」を返しますが、必要なのは「X以下のすべて」です。PostgreSQLのltreeはツリークエリをはるかに高速に処理します。インデックスベースのサブツリールックアップであり、トラバーサルではありません。LithiumはこれをクリーンなTypeScript APIでラップし、バージョニングを内蔵しています。
主要機能
- 構造: ツリー階層(任意グラフではなく)
- クエリ速度: ltreeインデックスベース(グラフトラバーサルではなく)
- 検索: 決定論的、スコープ指定(パターンマッチングではなく)
- バージョニング: 内蔵、不変(手動上書きではなく)
- インフラ: 既存のPostgresを活用(別サービス不要)
パッケージ
@lithium-ai/core: ゼロ依存ストレージエンジン@lithium-ai/postgres: PostgreSQL ltreeアダプター@lithium-ai/drizzle: Drizzle ORMアダプター@lithium-ai/mcp: AIツール向けMCPサーバー
クイックスタート
前提条件: ltree拡張機能を持つPostgreSQL。Drizzleを使用する場合、@lithium-ai/coreと@lithium-ai/drizzleをインストールし、new Lithium(drizzleAdapter(db))で初期化。生のPostgresを使用する場合、@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をリリースし、活発に開発を続けています。