loci کیا ہے؟
loci AI ایجنٹس کے لیے ٹائپ شدہ طویل مدتی یادداشت کی ایک تہہ ہے۔ یہ گفتگوؤں سے پائیدار حقائق اخذ کرتا ہے، انہیں SQLite میں محفوظ کرتا ہے، بعد میں یاد کرنے کے لیے ان کی درجہ بندی کرتا ہے، اور ایسی معلومات ہٹا دیتا ہے جو مزید مفید نہیں رہیں۔
یہ منصوبہ اس خیال پر مبنی ہے کہ یادداشتوں کو جگہ اور ساخت، دونوں کی ضرورت ہوتی ہے۔ ہر محفوظ کیے گئے بیان کو یکساں سمجھنے کے بجائے، loci ترجیحات، آخری تاریخوں، اہداف، تعلقات اور دیگر اقسام کی معلومات میں فرق کرتا ہے تاکہ ہر قسم مناسب مدتِ حیات کے مطابق چل سکے۔
loci کو Lima میں پروڈکشن کے دوران استعمال ہونے والے میموری سسٹم سے منتقل کیا گیا اور کسی مخصوص میزبان ایپلیکیشن سے آزاد بنانے کے لیے ازسرِنو لکھا گیا ہے۔
میموری سسٹم کیسے کام کرتا ہے
ٹائپ شدہ یادداشتیں
ہر یادداشت آٹھ زمروں میں سے ایک سے تعلق رکھتی ہے:
- routine
- study
- preferences
- finance
- goals
- relationships
- constraints
- ephemeral
یادداشتوں کی اہمیت کی چار سطحیں اور حیثیت کا ایک لائف سائیکل بھی ہوتا ہے۔ یہ ساخت سسٹم کو مستقل ترجیح کو عارضی آخری تاریخ یا مختصر مدت کے حقیقت سے مختلف انداز میں برتنے دیتی ہے۔
اخراج کے دو راستے
اخراج دو طریقۂ کار کو یکجا کرتا ہے۔ ماڈل پر مبنی ایک ایکسٹریکٹر گفتگو کو معنی کے لیے پڑھتا ہے، جبکہ ریگولر ایکسپریشن ہیورسٹکس واضح طور پر معاونت یافتہ عبارتوں کا پتا لگاتے ہیں۔ نتائج کو یکجا کیا جاتا ہے اور ماڈل کے نتائج کو ترجیح دی جاتی ہے۔
جب ماڈل فراہم کنندہ دستیاب نہ ہو تو regex راستہ چلتا رہ سکتا ہے۔ ماڈل کالز، فراہم کنندہ SDKs اور API keys جان بوجھ کر میزبان ایپلیکیشن کے سپرد رکھے گئے ہیں، جو ایک ModelExtractor فراہم کر سکتی ہے۔
فلٹرنگ، درجہ بندی اور زوال
رائٹ فلٹر عارضی کیفیات اور اسی طرح کے مختصر مدتی بیانات کو مستقل پروفائل ڈیٹا بننے سے روکتا ہے۔ مثال کے طور پر، “آج تھکا ہوا ہوں” چند گھنٹوں کے لیے درست ہو سکتا ہے، لیکن مہینوں بعد گمراہ کن ثابت ہو سکتا ہے۔
جب یادداشتیں ماڈل کے سیاق میں شامل کی جاتی ہیں تو loci نتیجے کو بارہ حقائق تک محدود رکھتا ہے۔ یہ پہلے انہیں اہمیت کے لحاظ سے درجہ دیتا ہے، پھر آخری تاریخ کی قربت اور تازگی کو مدِنظر رکھتا ہے۔ یہ حد پرامپٹ کو بے قابو طور پر بڑھنے سے روکتی ہے۔
روزانہ کا استحکام اور زوال اسٹور کو مفید رکھتے ہیں:
- بالکل یکساں نقول کو یکجا کیا جاتا ہے۔
- غیر مصدقہ اندازے بالآخر ختم ہو جاتے ہیں۔
- عارضی حقائق کی مدتِ حیات 24 گھنٹے ہے۔
- مکمل کیے گئے اہداف 90 دن بعد ختم ہو جاتے ہیں۔
انضمام کا انتخاب کریں
loci ایک مشترکہ بنیادی نظام اور دو اڈاپٹر فراہم کرتا ہے۔
MCP سرور
MCP اڈاپٹر کسی بھی ہم آہنگ MCP کلائنٹ کے ساتھ کام کرتا ہے۔ یہ تین ٹولز فراہم کرتا ہے: remember، recall اور forget۔
MCP درخواست اور جواب کی بنیاد پر کام کرتا ہے، اس لیے اس میں ٹرن کے اختتام کا خودکار ہک نہیں ہوتا۔ ایجنٹ کو جان بوجھ کر remember کال کرنا ضروری ہے۔ درخواست پر میموری واپس حاصل کر کے سیاق میں شامل کی جا سکتی ہے۔
Hermes پلگ ان
Hermes اڈاپٹر وہی تین ٹولز فراہم کرتا ہے، لیکن یہ خودکار اخراج کی بھی معاونت کرتا ہے اور ہر کال سے پہلے سیاق شامل کرتا ہے۔ یہ اس لیے ممکن ہے کہ Hermes ایک post_llm_call ہک فراہم کرتا ہے، جو ماڈل کے جواب دینے کے بعد گفتگو کا جائزہ لے سکتا ہے۔
براہِ راست Python انضمام
جب آپ ایجنٹ لوپ کو کنٹرول کرتے ہوں اور یہ طے کرنا چاہتے ہوں کہ اخراج، پائیدار ذخیرہ، یادداشت کی بازیافت اور سیاق کی شمولیت کب ہو، تو بنیادی لائبریری براہِ راست استعمال کریں۔
تنصیب اور سیٹ اپ
بنیادی پیکیج انسٹال کریں
pip install mowave-lociMCP سپورٹ انسٹال کریں
pip install mowave-loci[mcp]MCP extra انسٹال کرنے کے بعد، اپنی MCP کلائنٹ کنفیگریشن میں loci شامل کریں:
{
"mcpServers": {
"loci": {
"command": "python",
"args": ["-m", "loci.adapters.mcp_server.server"]
}
}
}کلائنٹ کو دوبارہ شروع یا reload کریں تاکہ وہ remember، recall اور forget ٹولز دریافت کر سکے۔
Hermes پلگ ان انسٹال کریں
hermes plugins install <you>/loci
hermes plugins enable loci<you>/loci کو اپنی تنصیب کے لیے موزوں پلگ ان ریپوزٹری یا ماخذ سے تبدیل کریں۔
اسٹوریج کو کنفیگر کریں
بطورِ طے شدہ، loci یادداشتیں ~/.loci/memory.db پر موجود SQLite ڈیٹابیس میں محفوظ کرتا ہے۔ مختلف فائل استعمال کرنے کے لیے LOCI_DB ماحولیتی متغیر مقرر کریں۔
export LOCI_DB=/path/to/memory.dbعلیحدہ ڈیٹابیس سرور کی ضرورت نہیں ہے۔
Python میں بنیادی استعمال
بنیادی ورک فلو میں اسٹور بنانا، امیدوار یادداشتیں اخذ کرنا، انہیں فلٹر کرنا، منظور شدہ یادداشتیں محفوظ کرنا اور فعال یادداشتیں سسٹم پرامپٹ میں شامل کرنا شامل ہے۔
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())اس مثال میں reply سے مراد گفتگو سے وابستہ اسسٹنٹ کا متن ہے۔ پرتگالی صارف کے پیغام کا مطلب ہے کہ صارف مختصر جوابات کو ترجیح دیتا ہے۔
Store()کنفیگر شدہ SQLite میموری اسٹور کھولتا ہے۔extract(...)گفتگو سے امیدوار یادداشتیں تیار کرتا ہے۔should_persist(memory)رائٹ فلٹر نافذ کرتا ہے۔store.upsert(memory)منظور شدہ یادداشت داخل یا اپ ڈیٹ کرتا ہے۔store.active()فعال یادداشتیں حاصل کرتا ہے۔context_block(...)ان یادداشتوں کو پرامپٹ میں شامل کرنے کے لیے فارمیٹ کرتا ہے۔
MCP ٹولز کا استعمال
MCP سرور کنفیگر ہو جانے کے بعد، منسلک ایجنٹ تین آپریشنز استعمال کر سکتا ہے:
- یاد رکھیں: کسی ایسی حقیقت کو جان بوجھ کر محفوظ کریں جسے برقرار رہنا چاہیے۔
- یاد واپس لائیں: متعلقہ ہونے پر محفوظ شدہ معلومات حاصل کریں۔
- بھول جائیں: ایسی معلومات حذف کریں جنہیں مزید محفوظ نہیں رکھا جانا چاہیے۔
چونکہ MCP اڈاپٹر خودکار طور پر یادداشتیں اخذ نہیں کرتا، اس لیے ایجنٹ کی ہدایات میں واضح ہونا چاہیے کہ ایجنٹ سے remember کو کب کال کرنے کی توقع ہے۔ یہ فرض نہ کریں کہ ہر مکمل شدہ گفتگو کے مرحلے کا جائزہ لے کر اسے محفوظ کیا جائے گا۔
اعلیٰ درجے کے انضمام کے نکات
فراہم کنندہ کی منطق کو کور سے باہر رکھیں
loci کور صرف Python کی معیاری لائبریری استعمال کرتا ہے۔ آپ کی ایپلیکیشن ماڈل کالز، API کیز، اور فراہم کنندہ کے SDKs کی ذمہ دار ہے۔ اگر معنوی اخذ کے لیے ماڈل درکار ہو تو کور میں فراہم کنندہ کی dependencies شامل کرنے کے بجائے میزبان سے ModelExtractor داخل کریں۔
لائف سائیکل جابز میزبان سے چلائیں
loci یادداشت کی ساخت، یکجائی، اور زوال کے رویے متعین کرتا ہے، لیکن روزانہ کا کام شیڈول نہیں کرتا۔ روزانہ کی جابز شروع کرنے کے لیے میزبان کے cron، s6، systemd، یا کسی مساوی شیڈولر کو استعمال کریں۔
کانٹیکسٹ کی حد برقرار رکھیں
ہر پرامپٹ میں پورا ڈیٹابیس شامل کرکے درجہ بند کانٹیکسٹ بلاک کو نظرانداز کرنے سے گریز کریں۔ بارہ حقائق کی حد کانٹیکسٹ کے پھیلاؤ کو قابو میں رکھتے ہوئے اہم، بروقت، اور حالیہ معلومات کو ترجیح دینے کے لیے موجود ہے۔
مناسب اڈاپٹر استعمال کریں
- جب MCP کلائنٹس کے درمیان قابلِ منتقلی اہم ہو اور واضح یادداشتی کارروائیاں قابلِ قبول ہوں تو MCP منتخب کریں۔
- جب آپ ماڈل کالز کے بعد خودکار اخذ اور ہر کال سے پہلے یادداشت داخل کرنا چاہتے ہوں تو Hermes منتخب کریں۔
- جب آپ کی ایپلیکیشن ایجنٹ لوپ کی مالک ہو اور پائیداری اور پرامپٹ کی تشکیل پر درست کنٹرول درکار ہو تو براہِ راست Python API منتخب کریں۔
ٹرانسپورٹ اور سیشنز کی ذمہ داری میزبان کو دیں
ایجنٹ لوپ، ٹول ڈسپیچ، سیشنز، ٹرانسپورٹ، اور توثیق کور کی ذمہ داری سے باہر ہیں۔ Hermes، OpenClaw، یا Claude Code جیسے میزبان متعلقہ رن ٹائم کا انتظام کرتے ہیں، جبکہ اڈاپٹر میزبان کے مخصوص ٹرانسپورٹ اور توثیق کو سنبھالتے ہیں۔
ٹیسٹ سوٹ چلائیں
pytest -qپروجیکٹ میں 92 ٹیسٹ شامل ہیں جو عارضی فائل میں موجود حقیقی SQLite اسٹور کے خلاف چلتے ہیں۔ اسٹور کو خود mock نہیں کیا گیا، جس سے حقیقی تعیناتیوں میں استعمال ہونے والی اسی اسٹوریج ٹیکنالوجی کے خلاف رویے کی تصدیق میں مدد ملتی ہے۔
نتیجہ
loci الگ سرور کی ضرورت کے بغیر AI ایجنٹس کو ایک مختصر، ٹائپ شدہ، اور پائیدار یادداشت کی تہہ فراہم کرتا ہے۔ اس کا مشترکہ کور یادداشت کی ساخت اور لائف سائیکل سنبھالتا ہے، جبکہ MCP، Hermes، یا آپ کا اپنا Python ایجنٹ اردگرد کا رن ٹائم فراہم کرتا ہے۔ اپنے میزبان کے مطابق اڈاپٹر سے آغاز کریں، اخذ اور شیڈولنگ کی ذمہ داریوں کو واضح رکھیں، اور یادداشت کو پرامپٹ پر حاوی ہونے سے روکنے کے لیے درجہ بند کانٹیکسٹ داخل کریں۔
