Monlite:為AI Agent打造的極簡基礎設施
Monlite 是一個將數據庫、緩存、隊列、向量搜索、全文搜索和定時任務等功能整合到一個 SQLite 文件中的開源項目。它專為本地應用、CLI 工具和AI代理設計,無需 Docker 或複雜配置,只需一個 npm 包即可運行。目前支持 TypeScript 和 Python,並提供同步與瀏覽器支持。
Monlite 是一個創新的開源項目,旨在簡化為 AI 代理和本地應用構建後端基礎設施的複雜度。它通過將通常需要多個獨立服務(如 MongoDB、Redis、Qdrant 和 BullMQ)才能提供的功能,全部整合到一個單一的 SQLite 文件中,從而極大地降低了開發和運維成本。
項目的核心是一個零依賴的 TypeScript 庫,用户只需導入 @monlite/core 並創建一個數據庫實例,即可開始使用。這個數據庫文件 (app.db) 包含了所有功能:文檔集合支持類型化查詢和 reactive watch() 方法;@monlite/vector 提供向量搜索,適用於語義檢索和 RAG 場景;@monlite/fts 實現全文搜索(基於 FTS5);@monlite/kv 提供同步緩存和原子鎖;@monlite/queue 提供持久化任務隊列,支持重試和死信機制;@monlite/cron 則用於定時任務調度。所有這些功能都共享同一個文件,備份只需複製文件。
對於 AI 代理的後端需求,Monlite 提供了一套完整的解決方案。例如,一個編碼代理或 RAG 管道通常需要記憶存儲、緩存、向量搜索和任務隊列。Monlite 允許開發者用一致的 API 管理這些需求,通過文檔集合存儲記憶狀態,通過向量存儲進行語義召回,通過比較並交換操作實現跨進程的任務領取,通過緩存實現分佈式鎖,通過隊列調度嵌入任務。所有這些都可以在本地運行,無需 Docker 環境。
Monlite 還支持實時響應,類似本地版的 Firebase。集合的 watch() 方法可以監聽特定數據變更,只觸發相關更新,避免不必要的渲染。與 @monlite/sync 配合使用時,本地數據庫可以成為 MongoDB 或 PostgreSQL 的實時副本,支持離線操作並在重連後同步。
項目提供了類似 Prisma 的查詢語言,支持 elemMatch、regex、聚合管道(包括 $group、$lookup 和 $unwind)以及原子事務。API 的 TypeScript 支持提供編譯時檢查。
當前版本中,@monlite/core 已發佈 2.6.2 穩定版,其他包如 @monlite/vector 和 @monlite/fts 也在積極開發中。項目支持 Node 18/20,並可通過 @monlite/wasm 在瀏覽器中運行。Python 端口 monlite 已發佈,但僅包含文檔和 KV 功能。
Monlite 適用於需要本地優先、離線可用、簡單部署的場景,如 CLI 工具、桌面應用和邊緣設備。它避免了直接使用 SQLite 時需要自行實現文檔層、查詢翻譯、FTS 集成等工作,也無需像 Firebase 或 Supabase 那樣依賴雲端服務。項目採用 MIT 許可證。