سیستمهای حافظه در ایجنتهای هوش مصنوعی: واقعیت پشت برچسبها
خلاصهٔ کاملتر
کتابخانههای حافظه برای ایجنتهای AI از دههها تحقیق علوم شناختی وام میگیرن. اندل تولوینگ در سال ۱۹۷۲ پیشنهاد داد که حافظه انسانی حداقل دو نوع متمایز داره: حافظه رویدادی (episodic) برای تجربههای شخصی با زمان و مکان مشخص، و حافظه معنایی (semantic) برای دانش انتزاعی مثل «پایتخت فرانسه پاریسه» که به هیچ لحظه خاصی وابسته نیست. کتابخانههای مدرن این اصطلاحها رو در APIهاشون به کار میبرن — ولی سؤال اینه که آیا مهندسی پشتشون هم واقعاً همین تمایزها رو پیاده میکنه؟
سه جزء اصلی هر سیستم حافظه ایجنت رو میشه اینطور شناخت: اول، استخراجکننده (extractor) که مکالمات رو میخونه و تصمیم میگیره چی نگه داشته بشه — معمولاً یه فراخوانی LLM که رویدادهای situated رو به واقعیتهای کوتاه و انتزاعی فشرده میکنه (مثلاً «کاربر گفت TypeScript رو ترجیح میده» تبدیل میشه به «کاربر TypeScript رو ترجیح میده»). دوم، انبار داده (store) که این واقعیتها رو ذخیره میکنه و باید بتونه تناقضها رو مدیریت کنه — آیا اطلاعات قدیمی رو overwrite کنه، هر دو رو نگه داره، یا قدیمی رو بهعنوان superseded علامت بزنه. سوم، بازیاب (retriever) که در زمان query با ترکیب جستجوی برداری، کلیدواژهای و reranking، مرتبطترین اطلاعات رو برمیگردونه.
از چهار نوع حافظه شناختی — رویدادی، معنایی، رویهای و آیندهنگرانه — حافظه رویهای (procedural) جالبترین لیتموس تست برای ادعاهای کتابخانههاست. LangMem این رو جدی گرفته و prompt سیستم رو از طریق مسیرهای اجرایی ارزیابیشده تکامل میده — اون چیزی که به خاطر سپرده میشه یک واقعیت قابل بازیابی نیست بلکه یک رفتار کدشده در دستورالعملهاست. Mem0 اما فقط یه برچسب metadata.memory_type = "procedural" اضافه میکنه و همه چیز رو در همون ایندکسی مینویسه که برای واقعیتهای معمولی استفاده میشه. Graphiti اصلاً چنین مفهومی نداره. حافظه آیندهنگرانه (prospective) — یادآوری اینکه «دفعه بعد که کاربر از قیمتگذاری پرسید، tier جدید رو ذکر کن» — تقریباً در هیچ کتابخانه تولیدی وجود نداره، با اینکه مشکل فراموشی اهداف آینده در انسانها یکی از پرمطالعهترین شکستهای حافظهست.
در نتیجه، بیشتر این کتابخانهها در واقع سیستمهای حافظه زندگینامهای (autobiographical memory) هستن — واقعیتهایی که یه شخص درباره زندگی خودش میدونه. ایجنت اینجا نه حافظه خودش، بلکه اطلاعات کاربر رو نگه میداره: کجا زندگی میکنه، روی چی کار میکنه، چه تصمیماتی گرفته. نامگذاری دقیقتر، مسئله مرکزی این حوزه رو شفافتر میکنه.
درباره تشبیه به حافظه بیولوژیک هم باید دقت کرد. برخی ویژگیها قابل وارد کردن هستن: Anthropic با پروژه Dreams و Letta با sleep-time compute چیزی شبیه «consolidation» بیولوژیک رو شبیهسازی میکنن — پاسهای آفلاین که حافظه انباشته رو بازنویسی، dedup و سازگار میکنن. برخی ویژگیها اما اصلاً قابل وارد کردن نیستن: اهمیت احساسی (که در انسان از آمیگدال میآد) در یه ایجنت متنی ساختاراً غایبه. و برخی ویژگیها نباید وارد بشن: فراموشی در حافظه بیولوژیک یه محدودیت فیزیولوژیکه، نه یه ویژگی مطلوب. ایجنتی که همه چیز رو نگه میداره میتونه به سؤالات تاریخی جواب بده و قابل audit باشه — مشکل اصلی (قابل پیدا کردن موندن اطلاعات وقتی انبار بزرگ میشه) یه مسئله بازیابی و مدیریت تناقض است، نه فراموشی.
نکات کلیدی:
- بیشتر کتابخانههای حافظه ایجنت در واقع سیستمهای حافظه معنایی زندگینامهای هستن، نه یه سیستم چندگانه کامل
- سه جزء اصلی هر سیستم: استخراجکننده، انبار داده، و بازیاب
- حافظه رویهای (procedural) در LangMem واقعیتر پیاده شده؛ در Mem0 فقط یه برچسب metadataه؛ در Graphiti اصلاً وجود نداره
- حافظه آیندهنگرانه (prospective) در هیچ کتابخانه تولیدی وجود نداره و قلمرویی باز هست
- فراموشی بیولوژیک نباید الگو باشه — مشکل واقعی بازیابی و مدیریت تناقضه، نه حذف اطلاعات
- پروژههای Dreams (Anthropic) و sleep-time compute (Letta) نزدیکترین معادل «consolidation» بیولوژیک در دنیای ایجنتها هستن




