Monlite هي مكتبة TypeScript تبسط تطوير وكلاء الذكاء الاصطناعي المحليين من خلال دمج البنية التحتية الأساسية مثل تخزين المستندات والبحث المتجهي والتخزين المؤقت وقوائم المهام في ملف SQLite واحد، مما يلغي الحاجة إلى خدمات متعددة وإعدادات معقدة.
غالباً ما يبدأ بناء مشاريع وكلاء الذكاء الاصطناعي المحلية بروتين إعداد مرهق، بدلاً من البدء بكتابة كود الوكيل الفعلي. يجد المطورون أنفسهم عادة يتصارعون مع خدمات متعددة – MongoDB للذاكرة، Redis للتخزين المؤقت، Qdrant للبحث المتجهي، و BullMQ لقوائم المهام. قبل كتابة سطر واحد من منطق التطبيق، قد تكون بالفعل تشغل خمس حاويات Docker. في حين أن هذه الأدوات رائعة للإنتاج على نطاق واسع، فإن هذا الإعداد المحلي يمكن أن يشعرك وكأنه 'ضريبة' باهظة على كل فكرة أو تجربة جديدة. هنا يأتي دور Monlite، وهو حل رائع لتبسيط حياتك. تخيل مكتبة TypeScript واحدة حيث يتعامل ملف SQLite واحد مع حزمتك المحلية بأكملها. نحن نتحدث عن متجر مستندات، وبحث متجهي، وبحث نصي كامل، وذاكرة تخزين مؤقت بنظام مفتاح-قيمة، وقائمة مهام، وحتى مجدول مهام (cron scheduler) – كل ذلك ضمن ملف .db واحد. هذا يعني عدم وجود حاويات Docker بعد الآن لمجرد الاختبار المحلي، ولا يوجد كود 'ربط' معقد لربط الخدمات المختلفة، ولا قلق بشأن بدء تشغيل كل شيء بالترتيب الصحيح. ما عليك سوى إنشاء `createDb('./agent.db')`، وستكون جاهزًا للعمل مع `createVectorStore` أو `createQueue` أو ذاكرة التخزين المؤقت `kv`. يعتمد Monlite على الأساس المتين لـ SQLite، مستخدماً ميزات مثل معاملات ACID لسلامة البيانات ووضع WAL للمتانة. وللبحث المتجهي الفعال، يستفيد من إضافة `sqlite-vec`، التي تضيف نوع جدول افتراضي لاستعلامات أقرب الجيران (K-Nearest Neighbors). يستخدم التعامل مع المستندات دالة `json_extract()` المضمنة في SQLite مع طبقة TypeScript توفر واجهة برمجة تطبيقات مألوفة للفلترة والترتيب، مشابهة لأدوات مثل Mongo أو Prisma. أحد أصعب الأجزاء التي تطلبت جهدًا لإتقانها كان ضمان المطالبة بالوظائف مرة واحدة بالضبط عبر عمليات عمال متعددة. اتضح أن الحل كان أنيقاً: استخدام أمر `BEGIN IMMEDIATE` الخاص بـ SQLite. هذا يضمن أن قراءة الوظيفة والمطالبة بها تتم كخطوة ذرية واحدة، مما يمنع ظروف السباق ويحافظ على موثوقية قوائم المهام الخاصة بك. يبسط Monlite حقًا تطوير الذكاء الاصطناعي المحلي، مما يتيح لك التركيز على منطق وكيلك بدلاً من بنيته التحتية.