loci nima?
loci — AI agentlari uchun tiplashtirilgan uzoq muddatli xotira qatlami. U suhbatlardan doimiy faktlarni ajratib oladi, ularni SQLiteʼda saqlaydi, keyinchalik esga tushirish uchun tartiblaydi va endi foydali bo‘lmagan maʼlumotlarni olib tashlaydi.
Loyiha xotiralar uchun ham joy, ham tuzilma kerak degan g‘oyaga asoslangan. Har bir saqlangan bayonotni bir xil ko‘rish o‘rniga, loci afzalliklar, muddatlar, maqsadlar, munosabatlar va boshqa turdagi maʼlumotlarni ajratadi, shunda ular tegishli hayot sikllariga amal qilishi mumkin.
loci Lima tomonidan ishlab chiqarishda foydalaniladigan xotira tizimidan ko‘chirildi va muayyan host ilovasiga bog‘liq bo‘lmasligi uchun qayta yozildi.
Xotira tizimi qanday ishlaydi
Tiplashtirilgan xotiralar
Har bir xotira sakkizta toifadan biriga kiradi:
- routine
- study
- preferences
- finance
- goals
- relationships
- constraints
- ephemeral
Xotiralarda, shuningdek, muhimlikning to‘rtta darajasi va holat hayot sikli mavjud. Bu tuzilma tizimga uzoq davom etadigan afzallikni vaqtinchalik muddat yoki qisqa muddatli faktdan farqli tarzda boshqarish imkonini beradi.
Ikki xil ajratib olish yo‘li
Ajratib olish ikki mexanizmni birlashtiradi. Modelga asoslangan ajratib oluvchi suhbatni mazmun jihatidan tahlil qiladi, muntazam ifodaga asoslangan evristikalar esa aniq qo‘llab-quvvatlanadigan iboralarni aniqlaydi. Natijalar birlashtiriladi va model natijalariga ustuvorlik beriladi.
Model provayderi ishlamayotgan paytda ham regex yo‘li ishlashda davom etishi mumkin. Model chaqiruvlari, provayder SDKʼlari va API kalitlari ataylab host ilovasiga qoldirilgan; host ilova ModelExtractor obyektini kiritishi mumkin.
Filtrlash, tartiblash va so‘nish
Yozish filtri vaqtinchalik kayfiyatlar va shunga o‘xshash qisqa muddatli bayonotlarning doimiy profil maʼlumotlariga aylanishiga yo‘l qo‘ymaydi. Masalan, “Bugun charchadim” degan bayonot bir necha soat davomida to‘g‘ri bo‘lishi mumkin, ammo bir necha oydan keyin chalg‘ituvchi bo‘lishi ehtimol.
Xotiralar model kontekstiga qo‘shilganda, loci natijani o‘n ikkita fakt bilan cheklaydi. Ularni avval muhimligiga ko‘ra, keyin muddat yaqinligi va yangiligini hisobga olgan holda tartiblaydi. Bu cheklov promptning chegarasiz o‘sishiga yo‘l qo‘ymaydi.
Kundalik birlashtirish va so‘nish xotira omborini foydali holatda saqlaydi:
- Aynan takrorlangan maʼlumotlar birlashtiriladi.
- Tasdiqlanmagan taxminlarning amal qilish muddati oxir-oqibat tugaydi.
- Vaqtinchalik faktlarning yashash muddati 24 soat.
- Yakunlangan maqsadlarning amal qilish muddati 90 kundan keyin tugaydi.
Integratsiyani tanlang
loci bitta umumiy yadro va ikkita adapter taqdim etadi.
MCP serveri
MCP adapteri istalgan mos MCP mijozida ishlaydi. U uchta vositani taqdim etadi: remember, recall va forget.
MCP so‘rov va javob asosida ishlaydi, shuning uchun unda avtomatik turn yakuni ilgagi mavjud emas. Agent remember vositasini ataylab chaqirishi kerak. Xotirani so‘rov bo‘yicha esga tushirish va kontekstga kiritish mumkin.
Hermes plagini
Hermes adapteri xuddi shu uchta vositani taqdim etadi, biroq avtomatik ajratib olishni ham qo‘llab-quvvatlaydi va har bir chaqiruvdan oldin kontekstni kiritadi. Bu Hermes model javob berganidan keyin suhbatni tekshira oladigan post_llm_call ilgagini taqdim etgani uchun mumkin.
Pythonʼga to‘g‘ridan-to‘g‘ri integratsiya
Agent siklini o‘zingiz boshqarsangiz va ajratib olish, saqlash, esga tushirish hamda kontekstni kiritish qachon amalga oshishini o‘zingiz belgilamoqchi bo‘lsangiz, yadro kutubxonasidan bevosita foydalaning.
O‘rnatish va sozlash
Yadro paketini o‘rnatish
pip install mowave-lociMCP qo‘llab-quvvatlashini o‘rnatish
pip install mowave-loci[mcp]MCP qo‘shimchasini o‘rnatgandan so‘ng, lociʼni MCP mijozingiz konfiguratsiyasiga qo‘shing:
{
"mcpServers": {
"loci": {
"command": "python",
"args": ["-m", "loci.adapters.mcp_server.server"]
}
}
}Mijozni qayta ishga tushiring yoki qayta yuklang, shunda u remember, recall va forget vositalarini aniqlaydi.
Hermes plaginini o‘rnatish
hermes plugins install <you>/loci
hermes plugins enable loci<you>/loci o‘rniga o‘rnatishingiz uchun mos plagin repozitoriysi yoki manbasini kiriting.
Saqlashni sozlash
Standart bo‘yicha loci xotiralarni ~/.loci/memory.db manzilidagi SQLite maʼlumotlar bazasida saqlaydi. Boshqa fayldan foydalanish uchun LOCI_DB muhit o‘zgaruvchisini o‘rnating.
export LOCI_DB=/path/to/memory.dbAlohida maʼlumotlar bazasi serveri talab qilinmaydi.
Pythonʼda asosiy foydalanish
Asosiy ish jarayoni ombor yaratish, nomzod xotiralarni ajratib olish, ularni filtrlash, qabul qilingan xotiralarni saqlash va faol xotiralarni tizim promptiga qo‘shishdan iborat.
from loci import Store, extract, should_persist, context_block
store = Store()
for memory in extract(
"eu prefiro respostas curtas",
assistant_text=reply,
):
if should_persist(memory):
store.upsert(memory)
system_prompt += "\n\n" + context_block(store.active())Bu misolda reply suhbatga tegishli assistant matnini ifodalaydi. Portugal tilidagi foydalanuvchi xabari foydalanuvchi qisqa javoblarni afzal ko‘rishini anglatadi.
Store()sozlangan SQLite xotira omborini ochadi.extract(...)suhbatdan nomzod xotiralarni hosil qiladi.should_persist(memory)yozish filtrini qo‘llaydi.store.upsert(memory)qabul qilingan xotirani qo‘shadi yoki yangilaydi.store.active()faol xotiralarni oladi.context_block(...)ushbu xotiralarni promptga kiritish uchun formatlaydi.
MCP vositalaridan foydalanish
MCP serveri sozlangach, ulangan agent uchta operatsiyadan foydalanishi mumkin:
- remember: saqlanib qolishi kerak bo‘lgan faktni ataylab saqlash.
- recall: tegishli bo‘lganda saqlangan ma’lumotni olish.
- forget: endi saqlanmasligi kerak bo‘lgan ma’lumotni olib tashlash.
MCP adapteri xotiralarni avtomatik ajratib olmagani sababli, agent ko‘rsatmalarida agent qachon remember chaqirishi kerakligi aniq ko‘rsatilishi lozim. Har bir yakunlangan suhbat navbati tekshiriladi va saqlanadi, deb o‘ylamang.
Ilg‘or integratsiya bo‘yicha maslahatlar
Provayder mantiqini yadrodan tashqarida saqlang
loci yadrosi faqat Python standart kutubxonasidan foydalanadi. Model chaqiruvlari, API kalitlari va provayder SDKlari ilovangiz zimmasida bo‘ladi. Agar semantik ajratib olish uchun model talab qilinsa, yadroga provayder bog‘liqliklarini qo‘shish o‘rniga, xostdan ModelExtractor obyektini kiriting.
Hayotiy sikl vazifalarini xostdan ishga tushiring
loci xotira tuzilmasi, birlashtirish va so‘nish xatti-harakatlarini belgilaydi, ammo kundalik ishlarni rejalashtirmaydi. Kundalik vazifalarni ishga tushirish uchun xostning cron, s6, systemd yoki unga teng rejalashtiruvchisidan foydalaning.
Kontekst cheklovini saqlang
Har bir promptga butun ma’lumotlar bazasini qo‘shib, tartiblangan kontekst blokini chetlab o‘tishdan saqlaning. O‘n ikki faktlik cheklov muhim, dolzarb va yaqindagi ma’lumotlarga ustuvorlik berish bilan birga kontekst hajmining o‘sishini nazorat qiladi.
Tegishli adapterdan foydalaning
- MCP mijozlari o‘rtasida ko‘chma ishlash muhim bo‘lsa va xotira operatsiyalarini aniq bajarish maqbul bo‘lsa, MCPni tanlang.
- Model chaqiruvlaridan keyin avtomatik ajratib olish va har bir chaqiruvdan oldin xotirani kiritish kerak bo‘lsa, Hermesni tanlang.
- Ilovangiz agent sikliga egalik qilsa va saqlash hamda prompt tuzilishini aniq boshqarish zarur bo‘lsa, bevosita Python APIni tanlang.
Transport va sessiyalarni xost boshqarsin
Agent sikli, vositalarni yuborish, sessiyalar, transport va autentifikatsiya yadro mas’uliyatiga kirmaydi. Hermes, OpenClaw yoki Claude Code kabi xostlar atrofdagi ish vaqtini boshqaradi, adapterlar esa xostga xos transport va autentifikatsiyani boshqaradi.
Testlar to‘plamini ishga tushiring
pytest -qLoyiha vaqtinchalik fayldagi haqiqiy SQLite omborida ishlaydigan 92 ta testni o‘z ichiga oladi. Omborning o‘zi taqlid qilinmaydi, bu esa amaldagi joylashtirishlarda foydalaniladigan ayni saqlash texnologiyasiga nisbatan xatti-harakatni tekshirishga yordam beradi.
Xulosa
loci alohida server talab qilmasdan, AI agentlariga ixcham, tiplashtirilgan va barqaror xotira qatlamini taqdim etadi. Uning umumiy yadrosi xotira tuzilmasi va hayotiy siklni boshqaradi, MCP, Hermes yoki o‘zingizning Python agentingiz esa atrofdagi ish vaqtini ta’minlaydi. Xostingizga mos adapterdan boshlang, ajratib olish va rejalashtirish mas’uliyatlarini aniq belgilang hamda xotira promptni egallab olmasligi uchun tartiblangan kontekst kiritishdan foydalaning.
