AI News HubLIVE
站內改寫2 分鐘閱讀

Monlite:為AI Agent打造的極簡基礎設施

Monlite 是一個將資料庫、快取、佇列、向量搜尋、全文搜尋和定時任務等功能整合到一個 SQLite 檔案中的開源專案。它專為本地應用、CLI 工具和AI代理設計,無需 Docker 或複雜配置,只需一個 npm 包即可執行。目前支援 TypeScript 和 Python,並提供同步與瀏覽器支援。

來源Hacker News AI作者: emadjumaah

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 的查詢語言,支援 elemMatchregex、聚合管道(包括 $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 許可證。