MemGPT / Letta - ذاكرة الوكيل على طراز نظام التشغيل
MemGPT هي التقنية — و Letta الإطار الذي نما منها — لإعطاء وكلاء LLM إدارة ذاكرة على طراز نظام التشغيل. الفكرة الأساسية: معاملة نافذة السياق مثل RAM (سريعة لكن صغيرة) وإضافة “القرص” في شكل ذاكرة أرشيفية قابلة للبحث. يقرر الوكيل بنفسه، عبر استدعاءات الأداة، ما يجب الاحتفاظ به في السياق الرئيسي وما يجب تبديله من التخزين، مما يتيح له الحفاظ على ذاكرة طويلة الأجل متماسكة تتجاوز بكثير حد السياق الخام. (المشروع الآن يتم تطويره بـ Letta.)
التثبيت
| الطريقة | الأمر |
|---|
| pip | pip install letta |
| قم بتشغيل الخادم | letta server |
| Docker | docker run -p 8283:8283 letta/letta:latest |
| ADE (واجهة ويب) | اربط بيئة تطوير الوكيل بالخادم |
| التحقق | letta version |
معمارية الذاكرة
| الطبقة | القياس | المحتويات |
|---|
| السياق الرئيسي (ذاكرة أساسية) | RAM | الشخصية + الحقائق الرئيسية دائماً في الموجه |
| ذاكرة التذكر | الملفات الحديثة | سجل المحادثة قابل للبحث |
| الذاكرة الأرشيفية | القرص | حقائق طويلة الأجل تعسفية قابلة للبحث |
| الوكيل | نظام التشغيل | يقرر ما يتم تبديله داخلاً/خارجاً عبر الأدوات |
الذاكرة الأساسية (دائماً في السياق)
| كتلة | الغرض |
|---|
persona | من هو الوكيل / كيف يتصرف |
human | ما يعرفه عن المستخدم |
| كتل مخصصة | حقائق محددة المجال دائماً موجودة |
يعدل الوكيل هذه الكتل باستخدام الأدوات (core_memory_append، core_memory_replace) كلما يتعلم.
إنشاء وكيل
from letta_client import Letta
client = Letta(base_url="http://localhost:8283")
agent = client.agents.create(
name="assistant",
memory_blocks=[
{"label": "persona", "value": "I am a concise, helpful assistant."},
{"label": "human", "value": "The user''s name is Nick."},
],
model="openai/gpt-4o",
embedding="openai/text-embedding-3-small",
)
المراسلة وأدوات الذاكرة
response = client.agents.messages.create(
agent_id=agent.id,
messages=[{"role": "user", "content": "Remember I prefer dark mode."}],
)
| الأداة (الوكيل المستدعاة) | الإجراء |
|---|
core_memory_append | إضافة إلى كتلة دائمة في السياق |
core_memory_replace | تحديث كتلة ذاكرة أساسية |
archival_memory_insert | تخزين حقيقة إلى أرشيف (قرص) |
archival_memory_search | استرجاع من ذاكرة الأرشيف |
conversation_search | البحث في ذاكرة التذكر |
الذاكرة الأرشيفية
| الأمر | الوصف |
|---|
client.agents.passages.create(agent_id, text=...) | إدراج ذاكرة أرشيفية |
client.agents.passages.list(agent_id) | قوائس المقاطع المخزنة |
| بحث الوكيل | الوكيل يستدعي archival_memory_search تلقائياً عند الحاجة |
الاستمرار والحالة
| الميزة | ملاحظة |
|---|
| وكلاء ثابتة | حالة الوكيل تستمر على الخادم عبر الجلسات |
| التخزين | SQLite بشكل افتراضي؛ PostgreSQL للإنتاج |
| التصدير/الاستيراد | تسلسل الوكلاء للنقل بين النشرات |
| متعدد الوكلاء | تشغيل وتنسيق عدة وكلاء ثابتة |
سير العمل الشائع
# مساعد طويل الأجل يتذكر عبر الجلسات
# 1) الإنشاء مرة واحدة مع كتل الشخصية/الإنسان
# 2) كل جلسة، فقط أرسل الرسائل — Letta تدير تبديل الذاكرة
client.agents.messages.create(agent_id=agent.id,
messages=[{"role": "user", "content": "What do you remember about me?"}])
# الوكيل يبحث في التذكر/الأرشيف ويجيب بسياق دائم
MemGPT/Letta مقابل الذاكرة الأخرى
| الجانب | Letta (MemGPT) | Mem0 | Zep |
|---|
| النموذج | تبديل نمط نظام التشغيل يدار بالوكيل | متجر متعدد الطبقات | رسم بياني زمني |
| الثبات | وكلاء من جانب الخادم | مكتبة | خدمة |
| التحكم | الوكيل يقرر التبديل | التطبيق يقرر | الخدمة تدير |
| الأفضل لـ | وكلاء مستقلة طويلة الأجل | التخصيص | الحقائق الزمنية |
موارد